Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Everything posted by kit

  1. kit

    Runtime Traps

    Have you found this recent post? Do you have additional questions on it?
  2. Thank you for your feedback. I have created a feature request in our issue tracker for the subject.
  3. kit

    Error #17.

    We see one suspicious module from the crash log: C:\Program Files\Alwil Software\Avast5\snxhk.dll The most probably, your user is using Avast antivirus that monitors running processes via injecting its code to the system libraries. It is possible that Avast monitor process conflicts with Excelsior JET JVM execution. So you may: 1. Suggest your user temporally uninstall Avast to see if the problem is reproduced without it. 2. Install Avast yourself and try to reproduce the problem on your side. If you are able to reproduce the crash we will be happy to investigate this issue (and probably file the bug to Alwil Software -- Avast vendor). Another suspicious library is C:\Program Files\Internet Download Manager\idmmkb.dll that probably interfere with Excelsior JET in the similar way as Avast.
  4. kit

    A couple questions about Invocation

    As we support Java SE 6 it is recommended to use jni.h from JDK 6 (no matter which microversion). On the other hand, jni.h has not been changed significantly for a long time and changes usually extend previous functionality. So if you do not use unique features of JNI of particular Java version you may use earlier version.
  5. kit

    A couple questions about Invocation

    loadDll just loads DLL. initJavaRT loads and initializes JET runtime. Every jet-compiled Invocation DLL exports JNI_CreateJavaVM function that can be used to initialize JET runtime.
  6. kit

    Error #17.

    This is an internal JET crash which may be caused by plenty of various reasons. In general, we cannot investigate an issue without debugging the application and reproducing the crash. However in most cases the reason of such problems is JNI misuse. So my first question, whether you use JNI (native methods libraries) in your application or use any third-party libraries that use JNI (contain dlls). Please enumerate third-party APIs you use, if you are not sure for the subject. Can you reproduce the crash on your side? You may also contact our support (java at excelsior-usa.com) directly with this issue.
  7. kit

    Debugging the final Executable?

    Please contact Excelsior JET support with this issue (java at excelsior-usa.com).
  8. kit

    NetBeans 7.0

    Please read Excelsior JET User's Guide, Chapter "Excelsior JET Launcher". The section "Creating a new project" of the chapter contains a hint on how to get a launching command line from an IDE.
  9. kit

    Unable to handle an exception

    It is fatal error, all information is lost at the point where it is printed. Please contact support (java at excelsior-usa.com) with this issue.
  10. kit

    NullPointerException in String.format

    This crash indicates that internal structure of StringBuffer was corrupted from outside. Really, StringBuffer.toString() cannot produce StringIndexOutOfBoundsException. So I suspect that it is a sort of hardware problem. Does this crash (and above) occur on PC of one user or you have a bunch of the same crash logs from different users?
  11. kit

    error with embedded database

    Please contact our support (java at excelsior-usa.com) and provide us more details on how we can reproduce your problem.
  12. Do you develop this application or just use it?
  13. kit

    Mac OSX version

    Now, we do AMD64 port. We suppose to start Mac OSX port just after AMD64 port that is prerequisite for Mac OSX anyway.
  14. kit

    problem running a Jframe from within the exe

    Make sure that your GUI is initialized in the AWT thread. And of course, all manipulations with it must be also in the AWT thread.
  15. kit

    Excelsior JET with Grails

    Being protected means that original bytecode is not needed to run the application. The absence of easy-to-hack bytecode makes reverse engineering and code tampering much more complicated.
  16. kit

    Excelsior JET with Grails

    We have not tried, but I am sure that Grail uses its own custom classloading scheme that is not supported by JET. So grails applications most likely cannot be protected with Excelsior JET, but definitely can run on it, as any other Java SE application.
  17. Can you run usual Linux applications (non jet-compiled) in background with this method?
  18. "-server" VM option is specific to Sun(Oracle) HotSpot JVM. It enables aggressive on-the-fly optimizations there. Excelsior JET aggressively optimizes an application ahead-of-time (AOT) by default. So there is no such option for Excelsior JET JVM. On the other hand, there is so called "Server" runtime in Excelsior JET. It scales well on multi-CPUs servers (so it has very different semantic from "-server" HotSpot vm option). Server runtime is available in Enterprise edition and is enabled by default there. You may check it on the Page Target of Excelsior JET Control Panel.
  19. Please contact our support (java at excelsior-usa.com) with this issue.
  20. kit

    UAC Support for Vista

    AFAIK, no. There is no way to elevate already running program on demand. The only possible workaround here, I guess, is to execute another program via Windows shell with administrator privileges that will access the folder. You may use the workaround discussed above for this (See my post at December 10 2007). You may patch the UAC manifest with "asAdministrator" execution level.
  21. kit

    Compilation and Packaging with Maven

    sorry for long delay. yes, if the content of your package changes (so some new files appear or some of them disappear), you should manually reflect the changes in JetPackII GUI. As to "help" directory, I guess you should be able to put it to the executable, so it will not be needed to be updated in JetPackII. Regarding updates, they also can be created automatically, but also has the same problem as main package, so if the contents changes you should also use the GUI, but the GUI will suggest you to include updated files automatically.
  22. kit

    OSGi bundles and Windows service

    Do you have any links/further material explaining this; my Google-fu seems to be too weak to find any. We would like to create such a material, since Eclipse community seems not paying much attention to this subject. I have just converted Hello Equinox application into Eclipse RCP by myself and can share some "tips and tricks" about it. Honestly speaking, since the process is not automated by Eclipse, unexpected pitfalls and problems could arise during the process. I overcame them once, but today have spent another 2 hours to make things work. Here the instructions (possibly incomplete): 1. Prerequisite: all your code must be OSGi bundles. 2. The main difference between RCP application and Equinox application that Eclipse RCP provides uniform way to launch an application. This is done via "Application" extension point. So the next requirement: a) You have to choose a bundle (let us call it "main bundle" or "entry point") that would provide the "org.eclipse.core.runtime.applications" extension. To add this extension, you open plugin.xml file for the main bundle (or manifest.mf) c) Go to the "Extensions" tab d) Add "org.eclipse.core.runtime.applications" extension e) Fill it. Remember Id. f) Click Save g) Add "run" element (right click on "application" element of "org.eclipse.core.runtime.applications" extension and then click "New/run" in context menu) h) Create class for the element (must implements IApplication). This class will be an entry point of your application i) Click Save again j) Move the logic of your main class to the just created entry point class. Note, that OSGi framework is already initialized by Eclipse Runtime at this point, so you do not need to do it manually if you did. 3. Another feature of Eclipse RCP is so called "Product" extension point. Product has branding for instance. To add Product extension, you have to create a "Product Configuration" file: a) Click "File/New/Product Configuration" Choose a bundle where you have just added the "Application" extension. c) Click "New" in the product selection line of "Overview" tab of just created .product file d) In the appeared dialog, you have to link created application with created product providing remembered Id (see "e" in 2.) in Product Application section of the dialog and fill other info as well. 4. Once you have "Application" and "Product" extensions in your main bundle you may call your application as Eclipse RCP. For instance, you may launch and export your application (as Eclipse RCP application) at "Overview" tab of your ".product" file. But unfortunately, your application may fail to run at this point. To overcome this, you have to fill "Dependencies tab" of ".product" file correctly: a). Add all your bundles to the dependencies list first Click "Add Required Plug-ins" c) Ensure that "org.eclipse.core.runtime" appeared in the list. If not, you have to add it manually and click "Add Required Plug-ins" again. 5. At this point, my Hello Equinox application starts working as Eclipse RCP. But you may encounter other problems at startup of your application because bundle initialization may go in a different way that was normally when you launch your application as Equinox application. To overcome this you should properly configure "Configuration" tab of ".product" file. At this tab you specify start properties of the bundles. 6. Once your application works as expected via "Launch an application" action of "Overview" tab, you may export your application in Eclipse RCP form via "Eclipse Product export wizard" of "Overview" tab of ".product" file. And a directory that would be created after exporting process is eligible for compilation with Excelsior JET! yes. FQCN must use "/" delimiter though. And as the service main class must be in application classpath, you have to add application classpath entry containing the class to the project as well (also manually). You may do it via "!classpathentry" or "!classloaderentry app" directives. Will do Thanks for attention
  23. kit

    OSGi bundles and Windows service

    So you have an Eclipse Equinox application, haven't you? In short, no. More details: Currently we do not support arbitrary Eclipse Equinox applications (based on Equinox OSGi runtime). However, as far as we know, it is possible to convert an Equinox application into Eclipse RCP (note that using Eclipse RCP framework does not imply that the application must have SWT GUI). Excelsior JET does support Eclipse RCP, so you would be able to compile it with Excelsior JET thus protecting your OSGi bundles. However we did not have in mind the use of our Windows Service API in conjunction with Eclipse RCP. But I have just found that we did not forbid to use it with Eclipse RCP actually (but did not test this possibility either). I have just compiled an RCP app specifying "servicemain" and "servicename" equations and it has effectively turned into a Windows Service. I cannot promise that it will work flawlessly but you may try: 1. Convert your application into Eclipse RCP 2. Wrap Eclipse RCP launcher class into WinService 3. Compile your application as Eclipse RCP specifying "servicemain" and "servicename" equations Please share your results, if you try PS Another way is to convert your application into plain Tomcat web-application that is fully supported by Excelsior JET along with Windows services
  24. Why do you care about the disk footprint? Would you like to distribute your application on flash memory? Honestly speaking, 90M sounds unfeasibly taking into account the techniques that you employ: it should not be more then 50MB. How big are the executable and "rt" folder separately? For disk footprint reduction, you can reduce inline expansion method (to minimum or tiny methods only), and enable high disk footprint runtime reduction in addition.
  25. kit

    Compilation and Packaging with Maven

    Ok, let us divide compiler options and packaging options. All compiler options can be changed without using the GUI, specifically: * classpath (via !batch *.jar directive that is highlighted in the topic you have referred) * compilation options (as general ) * icon * version For more details on the subject, read JET User's Guide, Chapter "JC reference", Section "Compiler options and equations". As to packaging options, yes, they cannot be changed without using the GUI except version. However for Eclipse RCP and Tomcat applications you may define the packaging contents using command line options and we would like to extend this possibility for any type of application in a next JET version. May I ask you, why do you need to change packaging options such as start menu location and post-install actions at night build? Some real life example would be greatly appreciated.