Wiki source code of JApplication

Last modified by Andrus Adamchik on 2006/12/10 12:40

Hide last authors
Andrus Adamchik 26.1 1 == Description ==
2
Andrus Adamchik 81.1 3 //JApplication// is a task for assembling native launchers of Java applications for a number of target platforms. Currently supports native launchers for Mac and Windows operating systems and also a "java launcher" - a single jar file that can be run via {{code language="none"}}"java -jar file.jar"{{/code}}.
Andrus Adamchik 26.1 4
Andrus Adamchik 70.1 5 == OS Strategies ==
6
7 * Java: builds a single runnable jar file out of a collection of jar files.
8 * Mac: builds a XYZ.app bundle that includes all jar dependencies.
Andrus Adamchik 81.1 9 * Windows: Performs a Java build and creates an [[NSIS>>url:http://nsis.sourceforge.net/Main_Page||shape="rect"]] launcher for the runnable jar. Both {{code language="none"}}".exe"{{/code}} and {{code language="none"}}".jar"{{/code}} files are required to be in the same directory for the launcher to work.
Andrus Adamchik 70.1 10
Andrus Adamchik 80.1 11 == OS Requirements ==
Andrus Adamchik 26.1 12
Andrus Adamchik 80.1 13 * Mac launcher can be built on Mac only, as it requires a JavaApplicationStab file.
14 * Windows launcher can be built on Windows only.
Andrus Adamchik 46.1 15 * Java launcher can be assembled on any platform and has no prerequisites.
Andrus Adamchik 26.1 16
17 == Parameters ==
Andrus Adamchik 46.1 18
Andrus Adamchik 81.1 19 |=(((
20 Attribute
21 )))|=(((
22 Description
23 )))|=(((
24 Required
25 )))|=(((
26 Platforms
27 )))
28 |(((
29 name
30 )))|(((
31 The name of the application without OS-specific extension
32 )))|(((
33 yes
34 )))|(((
35
36 )))
37 |(((
38 mainClass
39 )))|(((
40 Main Java class
41 )))|(((
42 yes
43 )))|(((
44
45 )))
46 |(((
47 os
48 )))|(((
49 A family of operating systems. Currently supported values are "mac", "windows" and "java"
50 )))|(((
51 no (will use build machine os if ommitted; if the os is not supported, will use "java")
52 )))|(((
53
54 )))
55 |(((
56 destDir
57 )))|(((
58 A destination directory where the application launcher should be installed
59 )))|(((
60 no (will use {{code language="none"}}"${basedir}"{{/code}} if omitted)
61 )))|(((
62
63 )))
64 |(((
65 longName
66 )))|(((
67 An optional string identifying the application human-readable name. If not specified, "name" is used.
68 )))|(((
69 no
70 )))|(((
71
72 )))
73 |(((
74 icon
75 )))|(((
76 Platform-specific icon file (usually "*.ico" on Windows and "*.icns" on Mac)
77 )))|(((
78 no
79 )))|(((
80 mac,windows
81 )))
82 |(((
83 jvm
84 )))|(((
85 Minimal version of the Java Virtual machine required.
86 )))|(((
87 no (default is "1.4+")
88 )))|(((
89 mac
90 )))
91 |(((
92 jvmOptions
93 )))|(((
94 Optional parameters to pass to the JVM, such as memory settings, etc.
95 )))|(((
96 no
97 )))|(((
98 mac,windows
99 )))
100 |(((
101 version
102 )))|(((
103 Product version string
104 )))|(((
105 no (default 0.0)
106 )))|(((
107 mac
108 )))
Andrus Adamchik 46.1 109
110 == Nested Elements ==
111
112 === lib ===
113
Andrus Adamchik 81.1 114 The [[FileSet>>url:http://ant.apache.org/manual/CoreTypes/fileset.html||shape="rect"]] specifying jar files to be included in the application.
Andrus Adamchik 54.1 115
116 == Examples ==
117
118 Loading task:
119
120 {{noformat}}
121 <taskdef name="japplication" classname="org.objectstyle.woproject.ant.JApplication"/>
122 {{/noformat}}
123
124 Building a Windows application, resulting in "MyApp.exe" launcher that starts "MyApp.jar" file.
125
126 {{noformat}}
127 <japplication name="MyApp" destDir="dist" mainClass="org.example.Main" os="windows">
Andrus Adamchik 68.1 128 <lib dir="lib" includes="**/*.jar"/>
Andrus Adamchik 54.1 129 </japplication>
130 {{/noformat}}