Jump to content
Excelsior Forums


Excelsior Staff
  • Content count

  • Joined

  • Last visited

Everything posted by kit

  1. kit

    Just a stripped down JRE

    If you need all 1-5 at once, then the answer is no. Excelsior JET is complete JVM with static compilation feature. Java Runtime Slim-Down feature of Excelsior JET is only possible via global analysys of your program to understand what parts of JRE is actually used. And this is done via static compilation of your program into executable. However, if you would like to ship Oracle JRE with your application you may look at pack200 utility that comes with Oracle JDK. It may help you reducing the size of your setup in some extent.
  2. kit

    Cryptographic Libraries

    Please refine what do you mean? Java Security API is a part of Java SE platform that cannot be removed from it.
  3. kit

    Mac OSX version

    We are still busy with AMD64 port and you may track the progress of the port in the blog.
  4. It seems that you use Excelsior JET 7.2 (or elder version) on Linux, right? Please try the latest version (Excelsior JET 7.6) and tell us if this problem is reproduced there.
  5. kit

    Windows 8 support?

    I think that Excelsior Jet is likely to be compatible: we have performed very light testing on Windows 8 preview that have not revealed any problems. We do more testing before its official release and if there are some problems we will fix them and issue an update. Please also note that, AFAIK, Oracle Java SE 6 will not support Windows 8 officially, and as we license this technology from Oracle we cannot officially support it as well until we support Java SE 7.
  6. kit

    JetPack II Shortcut Properties

    AFAIK, Windows sorts them alphabetically and we did not find a way to influence on this so far. If you have some knowledge how technically it could be done please share it with us.
  7. kit

    Running Jet tools on Ubuntu

    Actually any library can be used. For example Gnome libraries can be used for Java GUI that is used by Excelsior JET tools. So we recommend to install all of them to avoid unexpected errors. Please let us know if it fixes the problem.
  8. kit

    Running Jet tools on Ubuntu

    We have installed Ubuntu 12.04 but cannot reproduce this issue: jet tools run ok on it. How did you install 32-bit libraries? We do it the following way: sudo apt-get install ia32-libs
  9. kit

    Running Jet tools on Ubuntu

    Can you tell, do you use 32-bit or 64-bit Ubuntu? We'll install Ubuntu 12.04 soon and try to reproduce this problem. We'll let you know about the progress.
  10. The most probably it is known Windows 64-bit related problem that was already fixed. So please try the latest version of Excelsior JET and let know if the problem still persists with it.
  11. kit

    OSGi bundles and Windows service

    We have tried your code snippet on our RCP sample and the stop method is called in our environment (according to Event Viewer). Do we understand the same by "the Stop button"? We stop the service going Windows Control Panel/Administrative tools/Services -- choosing the service, and use either Stop from context menu or "Stop the service" link on the left of the panel.
  12. kit

    OSGi bundles and Windows service

    If your application exits normally the "stop" method of WinService is not called but Java shutdown hooks must be executed in this case. "stop" method is called when the user stops the service from Windows Services Control Panel. In this case Windows terminates the process by its own and Java shutdown hooks are not executed. So you need to place application finalization manually to "stop" method for this case.
  13. kit

    Continuous Integration Support

    Ah, I did not understand that you have Eclipse RCP application. In this case, everything should work without using of xbind utility. The only thing you should do is to create your JetPackII project as Eclipse RCP project and the contents of the package will be automatically updated after this. Please let us know if it helps.
  14. kit

    Continuous Integration Support

    No, there is no way. If the plugins are in Java classpath then the best way to workaround the problem is to pack them into the executable so they will not be needed as separate files in JetPackII. If the plugins are not in Java classpath then the executable does not reference them and does not require to be modified after packaging. So you may add such plugins after packaging process with JetPackII (in case you use self-contained directory as JetPackII backend).
  15. kit

    OSGi bundles and Windows service

    Who does not recommend this? Eclipse itself starts Eclipse RCP applications using this class with JNI code that can be decoded as "new Main().run(args);" This is exactly what main method of org.eclipse.equinox.launcher.Main does. This is just code snippet, you may modify it as you want. Reflection allows not statically import the launcher jar. Only <YourAppLauncherName>.ini will not be read in this mode. When you use Excelsior WinService API, your application is linked with special startup library that differs from startup library used for Eclipse RCP launching (where <YourAppLauncherName>.ini is read). To set required VM properties, you have to specify them in "jetvmprop" equation of JET project file. Required ordinary arguments have to be passed to the main of launcher.Main. You can also parse <YourAppLauncherName>.ini by yourself to extract ordinary arguments. Other properties that Eclipse Runtime needs (not listed in <YourAppLauncherName>.ini, f.i. config.ini properties) are set by Java code that is invoked from launcher.Main.
  16. kit

    OSGi bundles and Windows service

    Ok, you would need the following steps: 1. You may use the following code snippet for Windows Service import java.io.*; import java.lang.reflect.Method; public class RCPService extends com.excelsior.service.WinService { public boolean init () { return false; // pause/resume are not supported } public void run () { try { Class bootstrap = Class.forName("org.eclipse.equinox.launcher.Main"); Method main = bootstrap.getDeclaredMethod("main", String[].class); main.invoke(null, (Object) new String[] {}); } catch (Exception e) { StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); e.printStackTrace(pw); logErrorEvent("RCP Service failed: " + sw); } } } 2. Compile the code above with javac and put it to a jar (say RCPService.jar) using the following command line javac -cp <JetInstallDir>/lib/WinService.jar RCPService.java jar -cf RCPService.jar RCPService.class 3. As JET Control Panel does not support the combination of Eclipse RCP and Windows Service you need to create JET project file as Eclipse RCP project first and then manually modify it in the following way: a) add -servicemain=RCPService -servicename=ServiceNameOfYourChoice to the equations section of the project and add !classloaderentry app RCPService.jar -pack=noncompiled -protect=nomatter -optimize=all !end to the end of the project. Please let us know if you succeed with this instructions.
  17. kit

    OSGi bundles and Windows service

    Have you got a GUI application or command line? Do you want to launch your application only as windows service or as standard RCP application too?
  18. We have fixed the problem. Users of Excelsior JET 7.6 (prior MP3) that suffer from this problem can contact our support to get the hotfix under valid support contracts.
  19. We are now busy with AMD64 port (http://www.excelsior-usa.com/blog/category/excelsior-jet/64-bit/) and cannot give ETA about the features you request. As workaround we suggest you to use Self-contained directory back-end of JetPackII and than package your application with third-party installers.
  20. kit

    Continuous Integration Support

    Does your application have a GUI? If yes, you may automate the process using third-party tools like QFTest. Please also read JET User's Guide, Chapter "Global Optimizer", Section "Using the Global Optimizer", Subsection "Performing a Test Run" to learn how to perform Test Run without JET Control Panel. Please also note that .startup profile can be automatically updated if you check the "Enable profiling in automated builds" on the Page Compile of JET Control Panel. Default values are: -optimize=all -protect=nomatter -pack=autodetect You may globally change these settings.
  21. kit

    Continuous Integration Support

    *.startup and *.usg files are execution profiles. It is recommended to update them before release performing Test Run. On the other hand, if you do not update them nothing fails but the program will not be optimized as good as it can be.
  22. kit

    Continuous Integration Support

    And about continuous integration: Usually our customers use the command line interface to the JET Optimizer and JetPackII To automate the build process. After you created projects for compiling and packaging your application you may use the following commands for automated builds 1) jc =p <ProjectName>.prj to compile the project 2) xpack <ProjectName>.jpn [-target target-file] [-version version] The -target option specifies the name of the target file (for Excelsior Installer setups) or the target directory (for self-contained directory or multiple roots package). If the option is omitted, the name shown on the last page of JetPackII is used. The -version option may be used for changing the product version displayed by the installation wizard of Excelsior Installer. It takes no effect for other back-ends. xpack utility is useful for minor updates, e.g. when only particular files are modified, provided that the overall structure of the project and installation settings were not changed. Could this command line interface help for automation in your case?
  23. kit

    Continuous Integration Support

    I guess that your jars change their name when they are updated, do they? If yes, there are 2 ways to handle this: 1. If the jar name contains a version string and the version string is one for all jars, you may use user-defined equations for JET project file. To do that: -- First, you need to choose a name for the equation, for instance "version". -- Then modify your project file by replacing actual version string with introduced "version" equation. For instance YourJar_1.0.0.1.jar will become YourJar_$(version).jar -- Define version equation in your build script such as follows: jc =p YourProject.prj -version:= For more details on JET project equations please read JET User's Guide, Chapter "JC reference" Section "Configuring the compiler/Options" 2. If the amount of library jars is changed or the names are changed in arbitrary manner, you may specify all jars that are in a directory at once, by using the following project file directive: !batch *.jar <JarsDirectoryPath> Please note, that you will not be able to specify separate properties (such as optimize, protect, pack properties) for a particular jar in this case. JetPackII projects (.jpn) do not need to be changed if all your jars are packed into executable. And if you have Eclipse RCP or Tomcat projects then they are updated automatically, if you do not change default settings.
  24. kit

    Runtime Traps

    Have you found this recent post? Do you have additional questions on it?