Java Executable Wrapper Plugin for Eclipse
After we written a java application by Eclipse, we should type a command like "java myapp.class" or "javaw -jar myapp.jar" to run our application. Though we can write a .bat file on Windows or write a shell script on Linux to do the job, it feels not very convenience.
The aim of this Google Summer of Code 2007 project is to develop a plugin for Eclipse to wrap compiled Java applications and give out a excutable file. It is supposed to support both Windows and Unix-like Systems.
This plugin will take use of the Eclipse executable application which comes from the "platform-launcher" project in the Eclipse cvs.
This plugin will consist of two main parts.
- An editor of ".launcher" files. The ".launcher" files contain the required information to generate a executable launcher.
- A wizard that generates the executable launcher. The wizard can get configuration from users step by step or load it from some ".launcher" configuration files.
- Java Executable Wrapper Plugin (include source codes)
- The documentation of the project including user guides and manuals.
- 1. Initial planning and designing of the project- to be finished by 31st May
- Within this period I should get in touch with the mentor and I will learn how to use Eclipse "platform Launcher". And also I will learn the Eclipse plugin development for the wizard and give out a design description.
- Deliverable(s): Architectural design description
- 2. Implementation of the design – to be finished by 15th of June
- This period will be the main development period when development and debugging will be taken place. At the same time get ready for mid evaluation.
- Deliverables(s):Prototypes and documentation for the mid evaluation.
- 3 .Modifications and samples – to be finished by 25th of July
- This period will be taken to add new features, modify the code for deliverable and to write raw user's manual.
- Deliverable(s) : Samples, improved code and raw user's manual.
- 4. Final code and documentation - to be finished by 15th of August
- During this stage the code would be tested for the production quality codes. Documentation would also be completed for the final evaluation.
- Deliverable(s) : Final plugin and Documentation
The schedule will likely need some modification. ^_^
1. Study the use of Eclipse executable application (the launcher). (done)
- (1) format of ini file (done)
- (2) parameters (done)
2. Study how to branding the executable application. (done)
- (1) use of class BrandingIron (in package org.eclipse.pde.internal.build) (done)
- 1. steps : new BrandingIron; setName; setOS; setRoot; setIcons; brand (done)
- 2. parameter format for setIcons method: "icon_filename1, icon_filename2, ..." (done)
- (2) branding of eclipse executable (done)
- There is a trouble thing: the eclipse.exe for Windows has 7 icons of different height*width*depth. So it may be not convenient for users to find these 7 icons.
3. Study the development of eclipse wizard plugin and editor plugin. (done)
- (1) Study wizard development (done)
- (2) Study editor development (done)
4. Implementation of test the export wizard to create a launcher for java application.
- (1)support for requied parameters : (done)
- 1 executable jar file;
- 2 user parameters;
- 3 operating system
- (2)support for optional parameters : (done)
- 1 application name;
- 2 splash bitmap / nosplash;
- 3 window system
- (3)support for unusual parameters : (done)
- 1 OS architecture
- 2 Java VM
- 3 VM argument
- (4)support for variant operating systems (done)
- (5)load settings from .launcher file (done)
- (6)save settings to .launcher file (done)
5. Implementation and test of the editor for .launcher file (done)
6. Final test of the plugin and documentation (done)
Problems unresolved now
1. Compiling warning
- I used org.eclipse.ui.internal.util.BundleUtility to get the launcher file in the plugin directory. But the compiler will report warnings for the BundleUtility class.
2. To many icons needed to brand windows launcher
- the eclipse.exe for Windows has 7 icons of different height*width*depth. So it may be not convenient for users to set 7 new icons.