Neurogami-roir 1.3.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +22 -0
- data/Manifest.txt +250 -0
- data/README.md +12 -0
- data/Rakefile +63 -0
- data/bin/roir +176 -0
- data/data/GenericJavaApp.icns +0 -0
- data/data/JavaApplicationStub +0 -0
- data/data/Rawr logo 1 large.png +0 -0
- data/data/Rawr logo 2 large.png +0 -0
- data/data/Rawr logo2.png +0 -0
- data/data/website/_notes/dwsync.xml +1 -0
- data/data/website/css/1.css +254 -0
- data/data/website/css/_notes/dwsync.xml +1 -0
- data/data/website/images/_notes/dwsync.xml +1 -0
- data/data/website/images/body_bg.jpg +0 -0
- data/data/website/images/bullet.gif +0 -0
- data/data/website/images/content.jpg +0 -0
- data/data/website/images/content_h2.gif +0 -0
- data/data/website/images/details.gif +0 -0
- data/data/website/images/details.jpg +0 -0
- data/data/website/images/header_bg.jpg +0 -0
- data/data/website/images/nav_a_hover.gif +0 -0
- data/data/website/images/rawr_logo.png +0 -0
- data/data/website/index.html +164 -0
- data/lib/app_bundler.rb +138 -0
- data/lib/bundler.rb +36 -0
- data/lib/command.rb +68 -0
- data/lib/exe_bundler.rb +106 -0
- data/lib/generator.rb +127 -0
- data/lib/jar_builder.rb +57 -0
- data/lib/jruby_batch_compiler.rb +127 -0
- data/lib/jruby_release.rb +104 -0
- data/lib/launch4j/LICENSE.txt +30 -0
- data/lib/launch4j/bin-linux/COPYING +340 -0
- data/lib/launch4j/bin-linux/ld +0 -0
- data/lib/launch4j/bin-linux/windres +0 -0
- data/lib/launch4j/bin-mac/COPYING +340 -0
- data/lib/launch4j/bin-mac/ld +0 -0
- data/lib/launch4j/bin-mac/readme.txt +1 -0
- data/lib/launch4j/bin-mac/windres +0 -0
- data/lib/launch4j/bin-win/COPYING +340 -0
- data/lib/launch4j/bin-win/ld.exe +0 -0
- data/lib/launch4j/bin-win/windres.exe +0 -0
- data/lib/launch4j/build.xml +62 -0
- data/lib/launch4j/demo/ConsoleApp/ConsoleApp.jar +0 -0
- data/lib/launch4j/demo/ConsoleApp/build.xml +57 -0
- data/lib/launch4j/demo/ConsoleApp/l4j/ConsoleApp.ico +0 -0
- data/lib/launch4j/demo/ConsoleApp/lib/readme.txt +8 -0
- data/lib/launch4j/demo/ConsoleApp/readme.txt +1 -0
- data/lib/launch4j/demo/ConsoleApp/src/net/sf/launch4j/example/ConsoleApp.java +72 -0
- data/lib/launch4j/demo/LICENSE.txt +30 -0
- data/lib/launch4j/demo/SimpleApp/SimpleApp.jar +0 -0
- data/lib/launch4j/demo/SimpleApp/build.xml +52 -0
- data/lib/launch4j/demo/SimpleApp/l4j/SimpleApp.ico +0 -0
- data/lib/launch4j/demo/SimpleApp/l4j/SimpleApp.xml +18 -0
- data/lib/launch4j/demo/SimpleApp/l4j/splash.bmp +0 -0
- data/lib/launch4j/demo/SimpleApp/lib/readme.txt +8 -0
- data/lib/launch4j/demo/SimpleApp/readme.txt +1 -0
- data/lib/launch4j/demo/SimpleApp/src/net/sf/launch4j/example/SimpleApp.java +104 -0
- data/lib/launch4j/demo/readme.txt +3 -0
- data/lib/launch4j/head/LICENSE.txt +23 -0
- data/lib/launch4j/head/consolehead.o +0 -0
- data/lib/launch4j/head/guihead.o +0 -0
- data/lib/launch4j/head/head.o +0 -0
- data/lib/launch4j/head_src/LICENSE.txt +23 -0
- data/lib/launch4j/head_src/consolehead/Makefile.win +33 -0
- data/lib/launch4j/head_src/consolehead/consolehead.c +65 -0
- data/lib/launch4j/head_src/consolehead/consolehead.dev +108 -0
- data/lib/launch4j/head_src/guihead/Makefile.win +33 -0
- data/lib/launch4j/head_src/guihead/guihead.c +185 -0
- data/lib/launch4j/head_src/guihead/guihead.dev +109 -0
- data/lib/launch4j/head_src/guihead/guihead.h +43 -0
- data/lib/launch4j/head_src/head.c +807 -0
- data/lib/launch4j/head_src/head.h +113 -0
- data/lib/launch4j/head_src/resource.h +71 -0
- data/lib/launch4j/launch4j +8 -0
- data/lib/launch4j/launch4j.jar +0 -0
- data/lib/launch4j/launch4j.jfpr +0 -0
- data/lib/launch4j/lib/JGoodies.Forms.LICENSE.txt +31 -0
- data/lib/launch4j/lib/JGoodies.Looks.LICENSE.txt +31 -0
- data/lib/launch4j/lib/Nuvola.Icon.Theme.LICENSE.txt +504 -0
- data/lib/launch4j/lib/XStream.LICENSE.txt +27 -0
- data/lib/launch4j/lib/commons-beanutils.jar +0 -0
- data/lib/launch4j/lib/commons-logging.jar +0 -0
- data/lib/launch4j/lib/commons.LICENSE.txt +50 -0
- data/lib/launch4j/lib/forms.jar +0 -0
- data/lib/launch4j/lib/formsrt.jar +0 -0
- data/lib/launch4j/lib/foxtrot.LICENSE.txt +25 -0
- data/lib/launch4j/lib/foxtrot.jar +0 -0
- data/lib/launch4j/lib/looks.jar +0 -0
- data/lib/launch4j/lib/xstream.jar +0 -0
- data/lib/launch4j/manifest/uac.exe.manifest +12 -0
- data/lib/launch4j/manifest/xp-themes.exe.manifest +14 -0
- data/lib/launch4j/src/images/asterix-o.gif +0 -0
- data/lib/launch4j/src/images/asterix.gif +0 -0
- data/lib/launch4j/src/images/build.png +0 -0
- data/lib/launch4j/src/images/button_ok.png +0 -0
- data/lib/launch4j/src/images/cancel16.png +0 -0
- data/lib/launch4j/src/images/down16.png +0 -0
- data/lib/launch4j/src/images/edit_add16.png +0 -0
- data/lib/launch4j/src/images/info.png +0 -0
- data/lib/launch4j/src/images/new.png +0 -0
- data/lib/launch4j/src/images/new16.png +0 -0
- data/lib/launch4j/src/images/ok16.png +0 -0
- data/lib/launch4j/src/images/open.png +0 -0
- data/lib/launch4j/src/images/open16.png +0 -0
- data/lib/launch4j/src/images/run.png +0 -0
- data/lib/launch4j/src/images/save.png +0 -0
- data/lib/launch4j/src/images/up16.png +0 -0
- data/lib/launch4j/src/launch4j.properties +2 -0
- data/lib/launch4j/src/net/sf/launch4j/Builder.java +207 -0
- data/lib/launch4j/src/net/sf/launch4j/BuilderException.java +52 -0
- data/lib/launch4j/src/net/sf/launch4j/ExecException.java +66 -0
- data/lib/launch4j/src/net/sf/launch4j/FileChooserFilter.java +76 -0
- data/lib/launch4j/src/net/sf/launch4j/Log.java +105 -0
- data/lib/launch4j/src/net/sf/launch4j/Main.java +99 -0
- data/lib/launch4j/src/net/sf/launch4j/Messages.java +78 -0
- data/lib/launch4j/src/net/sf/launch4j/OptionParser.java +71 -0
- data/lib/launch4j/src/net/sf/launch4j/RcBuilder.java +340 -0
- data/lib/launch4j/src/net/sf/launch4j/Util.java +197 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/AntClassPath.java +61 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/AntConfig.java +129 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/AntJre.java +69 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/Launch4jTask.java +162 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/Messages.java +55 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/StringWrapper.java +67 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/messages.properties +35 -0
- data/lib/launch4j/src/net/sf/launch4j/ant/messages_es.properties +35 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/Binding.java +62 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/BindingException.java +52 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/Bindings.java +317 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/IValidatable.java +44 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/InvariantViolationException.java +67 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JComboBoxBinding.java +119 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JListBinding.java +118 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JRadioButtonBinding.java +146 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JTextAreaBinding.java +123 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JTextComponentBinding.java +108 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/JToggleButtonBinding.java +108 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/Messages.java +78 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/OptComponentBinding.java +119 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/OptJTextAreaBinding.java +141 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/Validator.java +259 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/messages.properties +52 -0
- data/lib/launch4j/src/net/sf/launch4j/binding/messages_es.properties +51 -0
- data/lib/launch4j/src/net/sf/launch4j/config/ClassPath.java +87 -0
- data/lib/launch4j/src/net/sf/launch4j/config/Config.java +396 -0
- data/lib/launch4j/src/net/sf/launch4j/config/ConfigPersister.java +249 -0
- data/lib/launch4j/src/net/sf/launch4j/config/ConfigPersisterException.java +51 -0
- data/lib/launch4j/src/net/sf/launch4j/config/Jre.java +235 -0
- data/lib/launch4j/src/net/sf/launch4j/config/LdDefaults.java +62 -0
- data/lib/launch4j/src/net/sf/launch4j/config/Messages.java +78 -0
- data/lib/launch4j/src/net/sf/launch4j/config/Msg.java +111 -0
- data/lib/launch4j/src/net/sf/launch4j/config/SingleInstance.java +74 -0
- data/lib/launch4j/src/net/sf/launch4j/config/Splash.java +103 -0
- data/lib/launch4j/src/net/sf/launch4j/config/VersionInfo.java +168 -0
- data/lib/launch4j/src/net/sf/launch4j/config/messages.properties +93 -0
- data/lib/launch4j/src/net/sf/launch4j/config/messages_es.properties +75 -0
- data/lib/launch4j/src/net/sf/launch4j/form/BasicForm.java +283 -0
- data/lib/launch4j/src/net/sf/launch4j/form/BasicForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/ClassPathForm.java +193 -0
- data/lib/launch4j/src/net/sf/launch4j/form/ClassPathForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/ConfigForm.java +132 -0
- data/lib/launch4j/src/net/sf/launch4j/form/ConfigForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/EnvironmentVarsForm.java +127 -0
- data/lib/launch4j/src/net/sf/launch4j/form/EnvironmentVarsForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/HeaderForm.java +171 -0
- data/lib/launch4j/src/net/sf/launch4j/form/HeaderForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/JreForm.java +266 -0
- data/lib/launch4j/src/net/sf/launch4j/form/JreForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/Messages.java +55 -0
- data/lib/launch4j/src/net/sf/launch4j/form/MessagesForm.java +183 -0
- data/lib/launch4j/src/net/sf/launch4j/form/MessagesForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.java +141 -0
- data/lib/launch4j/src/net/sf/launch4j/form/SingleInstanceForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/SplashForm.java +166 -0
- data/lib/launch4j/src/net/sf/launch4j/form/SplashForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/VersionInfoForm.java +232 -0
- data/lib/launch4j/src/net/sf/launch4j/form/VersionInfoForm.jfrm +0 -0
- data/lib/launch4j/src/net/sf/launch4j/form/messages.properties +146 -0
- data/lib/launch4j/src/net/sf/launch4j/form/messages_es.properties +118 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/AbstractAcceptListener.java +75 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/BasicFormImpl.java +101 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/BrowseActionListener.java +79 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/ClassPathFormImpl.java +222 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/ConfigFormImpl.java +100 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/EnvironmentVarsFormImpl.java +50 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/FileChooser.java +65 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/GlassPane.java +67 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/HeaderFormImpl.java +102 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/JreFormImpl.java +166 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/MainFrame.java +358 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/Messages.java +55 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/MessagesFormImpl.java +58 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/SingleInstanceFormImpl.java +54 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/SplashFormImpl.java +61 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/VersionInfoFormImpl.java +63 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/messages.properties +74 -0
- data/lib/launch4j/src/net/sf/launch4j/formimpl/messages_es.properties +56 -0
- data/lib/launch4j/src/net/sf/launch4j/messages.properties +45 -0
- data/lib/launch4j/src/net/sf/launch4j/messages_es.properties +45 -0
- data/lib/launch4j/w32api/MinGW.LICENSE.txt +25 -0
- data/lib/launch4j/w32api/crt2.o +0 -0
- data/lib/launch4j/w32api/libadvapi32.a +0 -0
- data/lib/launch4j/w32api/libgcc.a +0 -0
- data/lib/launch4j/w32api/libkernel32.a +0 -0
- data/lib/launch4j/w32api/libmingw32.a +0 -0
- data/lib/launch4j/w32api/libmsvcrt.a +0 -0
- data/lib/launch4j/w32api/libshell32.a +0 -0
- data/lib/launch4j/w32api/libuser32.a +0 -0
- data/lib/launch4j/web/bullet.gif +0 -0
- data/lib/launch4j/web/changelog.html +356 -0
- data/lib/launch4j/web/docs.html +585 -0
- data/lib/launch4j/web/index.html +128 -0
- data/lib/launch4j/web/launch4j-use.gif +0 -0
- data/lib/launch4j/web/launch4j.gif +0 -0
- data/lib/launch4j/web/links.html +73 -0
- data/lib/launch4j/web/style.css +159 -0
- data/lib/options.rb +101 -0
- data/lib/platform.rb +28 -0
- data/lib/rawr.rb +178 -0
- data/lib/rawr_bundle.rb +26 -0
- data/lib/rawr_version.rb +3 -0
- data/lib/web_bundler.rb +114 -0
- data/lib/zip/ioextras.rb +155 -0
- data/lib/zip/stdrubyext.rb +111 -0
- data/lib/zip/tempfile_bugfixed.rb +195 -0
- data/lib/zip/zip.rb +1848 -0
- data/lib/zip/zipfilesystem.rb +609 -0
- data/lib/zip/ziprequire.rb +90 -0
- data/tasks/ann.rake +81 -0
- data/tasks/bones.rake +21 -0
- data/tasks/gem.rake +121 -0
- data/tasks/manifest.rake +49 -0
- data/tasks/notes.rake +28 -0
- data/tasks/post_load.rake +39 -0
- data/tasks/rdoc.rake +51 -0
- data/tasks/rubyforge.rake +57 -0
- data/tasks/setup.rb +269 -0
- data/tasks/spec.rake +63 -0
- data/tasks/svn.rake +48 -0
- data/tasks/test.rake +38 -0
- data/test/unit/app_bundler_spec.rb +65 -0
- data/test/unit/bundler_spec.rb +27 -0
- data/test/unit/generator_spec.rb +49 -0
- data/test/unit/jar_builder_spec.rb +5 -0
- data/test/unit/options_spec.rb +97 -0
- data/test/unit/platform_spec.rb +29 -0
- data/test/unit/spec_helpers.rb +22 -0
- data/test/unit/web_bundler_spec.rb +83 -0
- metadata +501 -0
@@ -0,0 +1,128 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Launch4j - Cross-platform Java executable wrapper</title>
|
5
|
+
<meta name="description" content="Cross-platform Java executable wrapper for creating lightweight Windows native EXEs. Provides better user experience.">
|
6
|
+
<meta name="keywords" content="java executable wrapper, java application wrapper, exe wrapper, jar wrapper, wrap, wraps, wrapping, free software, launch, launcher, linux, mac, windows, open source, ant, solaris, native splash screen, deploy, build tool">
|
7
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
8
|
+
<meta name="author" content="Grzegorz Kowal" >
|
9
|
+
<link rel="stylesheet" type="text/css" href="style.css">
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div id="container">
|
13
|
+
<div id="top">
|
14
|
+
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
15
|
+
</div>
|
16
|
+
<div id="leftnav">
|
17
|
+
<ul>
|
18
|
+
<li><a href="index.html">Home</a></li>
|
19
|
+
<li><a href="docs.html">Docs</a></li>
|
20
|
+
<li><a href="changelog.html">Changelog</a></li>
|
21
|
+
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
22
|
+
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
23
|
+
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
24
|
+
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
25
|
+
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
26
|
+
<li><a href="links.html">Links</a></li>
|
27
|
+
</ul>
|
28
|
+
<!--
|
29
|
+
*** Spanish docs are outdated ***
|
30
|
+
<ul style="margin-top: 20px; font-size: 75%">
|
31
|
+
<li><a href="index.html">English</a></li>
|
32
|
+
<li><a href="index_es.html">Español</a></li>
|
33
|
+
</ul>
|
34
|
+
-->
|
35
|
+
</div>
|
36
|
+
<div id="content">
|
37
|
+
<h2>Cross-platform Java executable wrapper</h2>
|
38
|
+
<p>
|
39
|
+
Launch4j is a cross-platform tool for wrapping
|
40
|
+
Java applications distributed as jars in lightweight Windows
|
41
|
+
native executables. The executable can be
|
42
|
+
configured to search for a certain JRE version or
|
43
|
+
use a bundled one, and it's possible to set
|
44
|
+
runtime options, like the initial/max heap size.
|
45
|
+
The wrapper also provides better user experience
|
46
|
+
through an application icon, a native pre-JRE
|
47
|
+
splash screen, a custom process name, and a Java
|
48
|
+
download page in case the appropriate JRE cannot
|
49
|
+
be found.
|
50
|
+
</p>
|
51
|
+
<img style="width: 352px; height: 498px; margin-left: 100px;" src="launch4j-use.gif" alt="How to use Launch4">
|
52
|
+
<h2>Features</h2>
|
53
|
+
<ul>
|
54
|
+
<li>Launch4j wraps jars in Windows native executables and allows to run them
|
55
|
+
like a regular Windows program. It's possible to wrap applications
|
56
|
+
on Windows, Linux, Mac OS X and Solaris!
|
57
|
+
</li>
|
58
|
+
<li>Also creates <strong>launchers</strong> for jars and class files without wrapping.</li>
|
59
|
+
<li>
|
60
|
+
Supports executable jars and <strong>dynamic classpath</strong> resolution using
|
61
|
+
environment variables and wildcards.
|
62
|
+
</li>
|
63
|
+
<li><strong>Doesn't extract the jar</strong> from the executable.</li>
|
64
|
+
<li>Custom application icon with multiple resolutions and color depths.</li>
|
65
|
+
<li><strong>Native pre-JRE splash screen</strong> in BMP format shown until
|
66
|
+
the Java application starts.
|
67
|
+
</li>
|
68
|
+
<li><strong>Process name</strong> as the executable filename to easily
|
69
|
+
identify your application, initial <strong>priority</strong> and
|
70
|
+
<strong>single aplication instance</strong> features.
|
71
|
+
</li>
|
72
|
+
<li>Works with a bundled JRE or searches for newest Sun or IBM JRE / JDK in given
|
73
|
+
version range.</li>
|
74
|
+
<li>Opens <strong>Java download page</strong> if an appropriate Java version cannot be
|
75
|
+
found or a <strong>support website</strong> in case of an error.
|
76
|
+
</li>
|
77
|
+
<li>Supports <strong>GUI and console apps</strong>.</li>
|
78
|
+
<li>Supports <strong>Vista manifests</strong> and <strong>XP visual style manifests</strong>.</li>
|
79
|
+
<li>Passes command line arguments, also supports constant arguments.</li>
|
80
|
+
<li>Allows to set the initial/max heap size also <strong>dynamically</strong> in percent of free memory.</li>
|
81
|
+
<li>JVM options: set system properties, tweak the garbage collection...</li>
|
82
|
+
<li>Runtime JVM options from an .l4j.ini file.</li>
|
83
|
+
<li>Runtime command line switches to change the compiled options.</li>
|
84
|
+
<li>Access to environment variables, the <strong>registry</strong> and executable file path through system properties.</li>
|
85
|
+
<li><strong>Set environment variables.</strong></li>
|
86
|
+
<li>Option to change current directory to the executable location.</li>
|
87
|
+
<li>The JRE's bin directory is appended to the Path environment variable.</li>
|
88
|
+
<li>Custom <strong>version information</strong> shown by Windows Explorer.</li>
|
89
|
+
<li><strong>GUI</strong> and command line interface.</li>
|
90
|
+
<li>Build integration through an <strong>Ant task</strong> and a <strong><a href="http://9stmaryrd.com/tools/launch4j-maven-plugin/">Maven Plugin</a></strong>.</li>
|
91
|
+
<li><big><strong>Lightweight: 26 KB!</strong></big></li>
|
92
|
+
<li><strong>It's free</strong> and may be used for commercial purposes.</li>
|
93
|
+
<li>Includes a sample application and <strong>Ant script</strong>
|
94
|
+
that automates the build process from Java sources to native executable.
|
95
|
+
</li>
|
96
|
+
<li>The wrapped program works on all Windows platforms (98/Me/NT/2K/XP/Vista),
|
97
|
+
Launch4j works on NT/2K/XP/Vista, Linux, Mac OS X (build on 10.4) and Sparc Solaris 8-10.
|
98
|
+
</li>
|
99
|
+
</ul>
|
100
|
+
<h2>License</h2>
|
101
|
+
<p>
|
102
|
+
This program is free software licensed under the
|
103
|
+
<a href="http://www.opensource.org/licenses/bsd-license.html">BSD license</a>, the <em>head</em> subproject
|
104
|
+
(the code which is attached to the wrapped jars) is licensed under the
|
105
|
+
<a href="http://www.opensource.org/licenses/mit-license.html">MIT license</a>.
|
106
|
+
Launch4j may be used for wrapping closed source, commercial applications.
|
107
|
+
</p>
|
108
|
+
<h2>Info</h2>
|
109
|
+
<p>
|
110
|
+
Running Launch4j on other Java enabled platforms is a matter of getting a binary version
|
111
|
+
of <a href="http://www.mingw.org/">MinGW</a> binutils 2.15.90 (<em>windres</em> and <em>ld</em> only)
|
112
|
+
for your system or compiling them. If you'll provide these, I'll be able to create a binary package
|
113
|
+
available for download.
|
114
|
+
</p>
|
115
|
+
<a href="http://sourceforge.net/forum/forum.php?forum_id=332683"></a>
|
116
|
+
</div>
|
117
|
+
<div class="footer">
|
118
|
+
All trademarks mentioned are properties of their respective owners.<br />
|
119
|
+
Copyright © 2005-2008 Grzegorz Kowal
|
120
|
+
<p style="margin-top: 2em">
|
121
|
+
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
122
|
+
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
123
|
+
<a href="http://validator.w3.org/check?uri=referer"><img style="width: 88px; height: 31px; border: none; margin-left: 5%" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
|
124
|
+
</p>
|
125
|
+
</div>
|
126
|
+
</div>
|
127
|
+
</body>
|
128
|
+
</html>
|
Binary file
|
Binary file
|
@@ -0,0 +1,73 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Launch4j - Cross-platform Java executable wrapper</title>
|
5
|
+
<meta name="description" content="Cross-platform Java executable wrapper for creating lightweight Windows native EXEs. Provides better user experience.">
|
6
|
+
<meta name="keywords" content="java executable wrapper, java application wrapper, exe wrapper, jar wrapper, wrap, wraps, wrapping, free software, launch, launcher, linux, mac, windows, open source, ant, solaris, native splash screen, deploy, build tool">
|
7
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
8
|
+
<meta name="author" content="Grzegorz Kowal" >
|
9
|
+
<link rel="stylesheet" type="text/css" href="style.css">
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div id="container">
|
13
|
+
<div id="top">
|
14
|
+
<img style="width: 249px; height: 58px;" src="launch4j.gif" alt="launch4j"> <span class="version">3.0.1</span>
|
15
|
+
</div>
|
16
|
+
<div id="leftnav">
|
17
|
+
<ul>
|
18
|
+
<li><a href="index.html">Home</a></li>
|
19
|
+
<li><a href="docs.html">Docs</a></li>
|
20
|
+
<li><a href="changelog.html">Changelog</a></li>
|
21
|
+
<li><a href="http://sourceforge.net/project/screenshots.php?group_id=95944">Screenshots</a></li>
|
22
|
+
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=95944&package_id=192323">Download</a></li>
|
23
|
+
<li><a href="http://sourceforge.net/forum/?group_id=95944">Support</a></li>
|
24
|
+
<li><a href="http://sourceforge.net/projects/launch4j">Project summary</a></li>
|
25
|
+
<li><a href="http://sourceforge.net/tracker/?atid=613100&group_id=95944">Bug tracker</a></li>
|
26
|
+
<li><a href="links.html">Links</a></li>
|
27
|
+
</ul>
|
28
|
+
<!--
|
29
|
+
*** Spanish docs are outdated ***
|
30
|
+
<ul style="margin-top: 20px; font-size: 75%">
|
31
|
+
<li><a href="index.html">English</a></li>
|
32
|
+
<li><a href="index_es.html">Español</a></li>
|
33
|
+
</ul>
|
34
|
+
-->
|
35
|
+
</div>
|
36
|
+
<div id="content">
|
37
|
+
<h2>Links</h2>
|
38
|
+
<p>
|
39
|
+
<a href="http://9stmaryrd.com/tools/launch4j-maven-plugin/">Launch4j Maven Plugin by Paul A. Jungwirth</a><br>
|
40
|
+
<a href="http://www.nbextras.org/2006/04/04/1144154738434.html">Launch4j integration module for NetBeans by Dafe Simonek</a><br><br>
|
41
|
+
<a href="http://www.mingw.org/">MinGW</a><br>
|
42
|
+
<a href="http://jakarta.apache.org/commons/beanutils/">Commons BeanUtils</a><br>
|
43
|
+
<a href="http://jakarta.apache.org/commons/logging/">Commons Logging</a><br>
|
44
|
+
<a href="http://xstream.codehaus.org/">XStream</a><br>
|
45
|
+
<a href="http://www.jgoodies.com/freeware/forms/">JGoodies Forms</a><br>
|
46
|
+
<a href="http://www.jgoodies.com/freeware/looks/">JGoodies Looks</a><br>
|
47
|
+
<a href="http://www.icon-king.com/">Nuvola Icon Theme</a><br>
|
48
|
+
<a href="http://abeille.dev.java.net/">Abeille Forms Designer</a><br>
|
49
|
+
<a href="http://www.eclipse.org/">Eclipse</a><br>
|
50
|
+
<a href="http://www.bloodshed.net/devcpp.html">Bloodshed Dev-C++ IDE</a><br>
|
51
|
+
</p>
|
52
|
+
<h3>Windows native installers</h3>
|
53
|
+
<p>
|
54
|
+
<a href="http://nsis.sourceforge.net/">NSIS</a> (cross-platform, targets Windows)<br>
|
55
|
+
<a href="http://www.jrsoftware.org/isinfo.php">Inno Setup</a><br>
|
56
|
+
</p>
|
57
|
+
<h3>Cross-platform Java installers</h3>
|
58
|
+
<p>
|
59
|
+
<a href="http://www.izforge.com/izpack/">IzPack<a><br>
|
60
|
+
</p>
|
61
|
+
</div>
|
62
|
+
<div class="footer">
|
63
|
+
All trademarks mentioned are properties of their respective owners.<br />
|
64
|
+
Copyright © 2005-2008 Grzegorz Kowal
|
65
|
+
<p style="margin-top: 2em">
|
66
|
+
<a href="http://sourceforge.net"><img style="width: 125px; height: 37px; border: none" src="http://sourceforge.net/sflogo.php?group_id=95944&type=4" alt="sf.net"></a>
|
67
|
+
<a href="http://www.nosoftwarepatents.com"><img style="width: 90px; height: 40px; border: none; margin-left: 5%" src="http://www.nosoftwarepatents.com/banners/90x40_3.jpg" alt=""></a>
|
68
|
+
<a href="http://validator.w3.org/check?uri=referer"><img style="width: 88px; height: 31px; border: none; margin-left: 5%" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!"></a>
|
69
|
+
</p>
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
</body>
|
73
|
+
</html>
|
@@ -0,0 +1,159 @@
|
|
1
|
+
body, table {
|
2
|
+
font: 12px/20px Verdana, Arial, Helvetica, sans-serif;
|
3
|
+
}
|
4
|
+
|
5
|
+
|
6
|
+
pre {
|
7
|
+
padding: 8px;
|
8
|
+
border: 1px dashed #999999;
|
9
|
+
background-color: #f1f1f1;
|
10
|
+
font: 13px/20px "Courier New", Courier, monospace;
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
.version {
|
15
|
+
color: #307fe1;
|
16
|
+
font-weight: bold;
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
.codeword {
|
21
|
+
color: #3333ff;
|
22
|
+
}
|
23
|
+
.attrib {
|
24
|
+
color: #404040;
|
25
|
+
}
|
26
|
+
.option {
|
27
|
+
font-family: "Courier New", Courier, monospace;
|
28
|
+
font-weight: bold;
|
29
|
+
}
|
30
|
+
|
31
|
+
|
32
|
+
dt {
|
33
|
+
margin-top: 1.5em;
|
34
|
+
color: #404040;
|
35
|
+
font-size: 115%;
|
36
|
+
border-bottom: 1px solid #cccccc;
|
37
|
+
}
|
38
|
+
dd {
|
39
|
+
margin-left: 1em;
|
40
|
+
}
|
41
|
+
|
42
|
+
|
43
|
+
.warn, ul.changes em {
|
44
|
+
color: #ff0000;
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
table {
|
49
|
+
margin-top: 1em;
|
50
|
+
padding: 0;
|
51
|
+
border: 1px solid #999999;
|
52
|
+
border-collapse: collapse;
|
53
|
+
text-align: center;
|
54
|
+
}
|
55
|
+
table th {
|
56
|
+
padding: 2px 4px;
|
57
|
+
border: 1px solid #999999;
|
58
|
+
background-color: #f1f1f1;
|
59
|
+
}
|
60
|
+
table td {
|
61
|
+
padding: 2px 4px;
|
62
|
+
border: 1px solid #999999;
|
63
|
+
}
|
64
|
+
.description {
|
65
|
+
text-align: left;
|
66
|
+
}
|
67
|
+
|
68
|
+
|
69
|
+
#container {
|
70
|
+
width: 90%;
|
71
|
+
margin: 10px auto;
|
72
|
+
border-width: 0;
|
73
|
+
background-color: #ffffff;
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
#top {
|
78
|
+
padding: 0.5em;
|
79
|
+
background-color: #ffffff;
|
80
|
+
}
|
81
|
+
#top h1 {
|
82
|
+
margin: 0;
|
83
|
+
padding: 0;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
#leftnav {
|
88
|
+
float: left;
|
89
|
+
width: 170px;
|
90
|
+
margin: 0;
|
91
|
+
padding: 0.5em;
|
92
|
+
background-color: #ffffff;
|
93
|
+
}
|
94
|
+
#leftnav ul {
|
95
|
+
margin: 0;
|
96
|
+
padding: 0;
|
97
|
+
border: none;
|
98
|
+
list-style-type: none;
|
99
|
+
font-size: 115%;
|
100
|
+
}
|
101
|
+
#leftnav a {
|
102
|
+
width: 170px;
|
103
|
+
height: 1.6em;
|
104
|
+
line-height: 1.6em;
|
105
|
+
display: block;
|
106
|
+
padding-left: 0.2em;
|
107
|
+
}
|
108
|
+
#leftnav a:link, #leftnav a:visited {
|
109
|
+
text-decoration: none;
|
110
|
+
color: #666666;
|
111
|
+
}
|
112
|
+
#leftnav a:hover {
|
113
|
+
background-color: #307fe1;
|
114
|
+
color: #ffffff;
|
115
|
+
}
|
116
|
+
|
117
|
+
|
118
|
+
#content {
|
119
|
+
max-width: 52em;
|
120
|
+
margin-left: 190px;
|
121
|
+
padding: 1em;
|
122
|
+
border-left: 1px solid #cccccc;
|
123
|
+
background-color: #ffffff;
|
124
|
+
}
|
125
|
+
|
126
|
+
#content ul {
|
127
|
+
list-style-image: url('bullet.gif');
|
128
|
+
}
|
129
|
+
|
130
|
+
#content a:link {
|
131
|
+
text-decoration: none;
|
132
|
+
color: #307fe1;
|
133
|
+
}
|
134
|
+
#content a:visited {
|
135
|
+
text-decoration: none;
|
136
|
+
color: #307fe1;
|
137
|
+
}
|
138
|
+
#content a:hover {
|
139
|
+
color: #307fe1;
|
140
|
+
text-decoration: underline;
|
141
|
+
}
|
142
|
+
|
143
|
+
#content h2 {
|
144
|
+
font-size: 150%;
|
145
|
+
}
|
146
|
+
#content h2:first-child {
|
147
|
+
margin: 0 0 0.5em;
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
.footer {
|
152
|
+
clear: both;
|
153
|
+
margin: 0;
|
154
|
+
padding: 0.5em;
|
155
|
+
background-color: #ffffff;
|
156
|
+
color: #333333;
|
157
|
+
text-align: center;
|
158
|
+
font-size: 90%;
|
159
|
+
}
|
data/lib/options.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
#require 'yaml'
|
2
|
+
require 'singleton'
|
3
|
+
require 'jar_builder'
|
4
|
+
#require 'ostruct'
|
5
|
+
require 'rubygems'
|
6
|
+
|
7
|
+
# This value needs to stay at the top level so it can be overriden by
|
8
|
+
# client Rake files
|
9
|
+
RAWR_CONFIG_FILE = 'build_configuration.rb'
|
10
|
+
|
11
|
+
module Rawr
|
12
|
+
class Options
|
13
|
+
include Singleton
|
14
|
+
attr_reader :data
|
15
|
+
|
16
|
+
def self.load_configuration(file = RAWR_CONFIG_FILE)
|
17
|
+
self.instance.load_configuration file
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.data
|
21
|
+
self.instance.data
|
22
|
+
end
|
23
|
+
|
24
|
+
def load_configuration(file)
|
25
|
+
configuration do |c|
|
26
|
+
c.project_name = 'ChangeMe'
|
27
|
+
c.output_dir = 'package'
|
28
|
+
c.main_ruby_file = 'main'
|
29
|
+
c.main_java_file = 'org.rubyforge.rawr.Main'
|
30
|
+
|
31
|
+
c.source_dirs = ['src', 'lib/ruby']
|
32
|
+
c.source_exclude_filter = []
|
33
|
+
|
34
|
+
c.jruby_jar = 'lib/java/jruby-complete.jar'
|
35
|
+
c.compile_ruby_files = true
|
36
|
+
c.java_lib_files = []
|
37
|
+
c.java_lib_dirs = ['lib/java']
|
38
|
+
c.files_to_copy = []
|
39
|
+
c.target_jvm_version = 1.5
|
40
|
+
c.minimum_windows_jvm_version = c.target_jvm_version
|
41
|
+
c.jars = {}
|
42
|
+
c.jvm_arguments = ""
|
43
|
+
|
44
|
+
c.windows_startup_error_message = "There was an error starting the application."
|
45
|
+
c.windows_bundled_jre_error_message = "There was an error with the bundled JRE for this app."
|
46
|
+
c.windows_jre_version_error_message = "This application requires a newer version of Java. Please visit http://www.java.com"
|
47
|
+
c.windows_launcher_error_message = "There was an error launching the application."
|
48
|
+
|
49
|
+
c.do_not_generate_plist = false
|
50
|
+
end
|
51
|
+
|
52
|
+
configuration_file = File.readlines(file)
|
53
|
+
instance_eval configuration_file.join
|
54
|
+
process_configuration
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
def initialize
|
59
|
+
@data = OpenStruct.new
|
60
|
+
end
|
61
|
+
|
62
|
+
def configuration
|
63
|
+
yield @data
|
64
|
+
end
|
65
|
+
|
66
|
+
def process_configuration
|
67
|
+
configuration do |c|
|
68
|
+
# Setup output directories for the various package types (jar, windows, osx, linux)
|
69
|
+
c.base_dir = Dir::pwd
|
70
|
+
c.output_dir = "#{c.base_dir}/#{c.output_dir}"
|
71
|
+
c.compile_dir = "#{c.output_dir}/classes"
|
72
|
+
c.jar_output_dir = "#{c.output_dir}/jar"
|
73
|
+
c.windows_output_dir = "#{c.output_dir}/windows"
|
74
|
+
c.osx_output_dir = "#{c.output_dir}/osx"
|
75
|
+
c.linux_output_dir = "#{c.output_dir}/linux"
|
76
|
+
|
77
|
+
pwd = "#{Dir::pwd}/"
|
78
|
+
c.classpath = (c.java_lib_dirs.map { |directory|
|
79
|
+
Dir.glob("#{directory}/**/*.jar")
|
80
|
+
} + c.java_lib_files).flatten.map!{|file| file.sub(pwd, '')}
|
81
|
+
|
82
|
+
c.files_to_copy.map! {|file| file.sub(pwd, '')}
|
83
|
+
|
84
|
+
# Set up Jar packing settings
|
85
|
+
c.jars_to_build = c.jars.map do |key, jar_settings|
|
86
|
+
JarBuilder.new("#{key.to_s}.jar", jar_settings)
|
87
|
+
end
|
88
|
+
|
89
|
+
# Check validity of source filters
|
90
|
+
if c.source_exclude_filter.kind_of? Array
|
91
|
+
c.source_exclude_filter.each{|filter| raise "Invalid source filter: #{filter.inspect}, contents of source filters array must be regular expressions" unless filter.kind_of? Regexp}
|
92
|
+
else
|
93
|
+
raise "Invalid source filter: #{c.source_exclude_filter.inspect}, source filters must be an array of regular expressions"
|
94
|
+
end
|
95
|
+
|
96
|
+
c.volume_name = nil
|
97
|
+
c.image_file_name = nil
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
data/lib/platform.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
class Platform
|
5
|
+
include Singleton
|
6
|
+
|
7
|
+
@@operating_system = Config::CONFIG['host_os']
|
8
|
+
|
9
|
+
def using_unix?
|
10
|
+
@using_unix ||= !using_windows?
|
11
|
+
end
|
12
|
+
|
13
|
+
def using_windows?
|
14
|
+
@using_windows ||= (@@operating_system =~ /^win|mswin/i)
|
15
|
+
end
|
16
|
+
|
17
|
+
def using_linux?
|
18
|
+
@using_linux ||= (@@operating_system =~ /linux/)
|
19
|
+
end
|
20
|
+
|
21
|
+
def using_mac?
|
22
|
+
@using_mac ||= (@@operating_system =~ /darwin/)
|
23
|
+
end
|
24
|
+
|
25
|
+
def argument_delimiter
|
26
|
+
using_windows? ? ';' : ':'
|
27
|
+
end
|
28
|
+
end
|
data/lib/rawr.rb
ADDED
@@ -0,0 +1,178 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'options'
|
6
|
+
require 'rbconfig'
|
7
|
+
require 'platform'
|
8
|
+
require 'generator'
|
9
|
+
require 'jar_builder'
|
10
|
+
require 'jruby_batch_compiler'
|
11
|
+
|
12
|
+
def file_is_newer?(source, target)
|
13
|
+
!File.exists?(target) || (File.mtime(target) < File.mtime(source))
|
14
|
+
end
|
15
|
+
|
16
|
+
namespace("rawr") do
|
17
|
+
|
18
|
+
desc "Loads data from the build_configuration.rb file. You can override the file to be used by setting RAWR_CONFIG_FILE"
|
19
|
+
task :load_configuration do
|
20
|
+
Rawr::Options.load_configuration
|
21
|
+
end
|
22
|
+
|
23
|
+
desc "Build all data jars"
|
24
|
+
task :build_data_jars => :prepare do
|
25
|
+
Rawr::Options.data.jars_to_build.each do |jar_builder|
|
26
|
+
jar_builder.build
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
desc "Removes generated content"
|
31
|
+
task :clean => "rawr:load_configuration" do
|
32
|
+
FileUtils.remove_dir(Rawr::Options.data.output_dir) if File.directory? Rawr::Options.data.output_dir
|
33
|
+
end
|
34
|
+
|
35
|
+
desc "Creates the output directory and sub-directories, reads in configuration data"
|
36
|
+
task :prepare => "rawr:load_configuration" do
|
37
|
+
FileUtils.mkdir_p Rawr::Options.data.output_dir
|
38
|
+
FileUtils.mkdir_p Rawr::Options.data.compile_dir
|
39
|
+
FileUtils.mkdir_p Rawr::Options.data.jar_output_dir
|
40
|
+
FileUtils.mkdir_p Rawr::Options.data.windows_output_dir
|
41
|
+
FileUtils.mkdir_p Rawr::Options.data.osx_output_dir
|
42
|
+
FileUtils.mkdir_p Rawr::Options.data.linux_output_dir
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'Compiles all the Java source and Ruby source files in the source_dirs entry in the build_configuration.rb file.'
|
46
|
+
task :compile => ['rawr:compile_java_classes', 'rawr:compile_ruby_classes', 'rawr:copy_other_file_in_source_dirs']
|
47
|
+
|
48
|
+
desc "Compiles the Java source files specified in the source_dirs entry"
|
49
|
+
task :compile_java_classes => "rawr:prepare" do
|
50
|
+
delimiter = Platform.instance.argument_delimiter
|
51
|
+
|
52
|
+
java_source_file_list = Rawr::Options.data.source_dirs.inject([]) do |list, directory|
|
53
|
+
list << Dir.glob("#{directory}/**/*.java").
|
54
|
+
reject{|file| File.directory?(file)}.
|
55
|
+
map!{|file| directory ? file.sub("#{directory}/", '') : file}.
|
56
|
+
reject{|file| Rawr::Options.data.source_exclude_filter.inject(false) {|rejected, filter| (file =~ filter) || rejected} }.
|
57
|
+
map!{|file| OpenStruct.new(:file => file, :directory => directory)}
|
58
|
+
end.flatten!
|
59
|
+
|
60
|
+
unless java_source_file_list.empty?
|
61
|
+
FileUtils.mkdir_p("#{Rawr::Options.data.compile_dir}/META-INF")
|
62
|
+
|
63
|
+
java_source_file_list.each do |data|
|
64
|
+
file = data.file
|
65
|
+
directory = data.directory
|
66
|
+
target_file = "#{Rawr::Options.data.compile_dir}/#{file.sub(/\.java$/, '.class')}"
|
67
|
+
|
68
|
+
# if !File.exists?(target_file) || (File.mtime(target_file) < File.mtime("#{directory}/#{file}"))
|
69
|
+
if file_is_newer?("#{directory}/#{file}", target_file)
|
70
|
+
sh "javac -target #{Rawr::Options.data.target_jvm_version} -cp \"#{Rawr::Options.data.classpath.join(delimiter)}\" -sourcepath \"#{Rawr::Options.data.source_dirs.join(delimiter)}\" -d \"#{Rawr::Options.data.compile_dir}\" \"#{directory}/#{file}\""
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
desc "Compiles the Ruby source files specified in the source_dirs entry"
|
77
|
+
task :compile_ruby_classes => "rawr:prepare" do
|
78
|
+
require 'command'
|
79
|
+
Rawr::Command.compile_ruby_dirs(Rawr::Options.data.source_dirs, Rawr::Options.data.compile_dir, Rawr::Options.data.jruby_jar, Rawr::Options.data.source_exclude_filter, Rawr::Options.data.target_jvm_version, !Rawr::Options.data.compile_ruby_files)
|
80
|
+
end
|
81
|
+
|
82
|
+
desc "Compiles the Duby source files specified in the source_dirs entry"
|
83
|
+
task :compile_duby_classes => "rawr:prepare" do
|
84
|
+
ruby_source_file_list = Rawr::Options.data.source_dirs.inject([]) do |list, directory|
|
85
|
+
list << Dir.glob("#{directory}/**/*.duby").
|
86
|
+
reject{|file| File.directory?(file)}.
|
87
|
+
map!{|file| directory ? file.sub("#{directory}/", '') : file}.
|
88
|
+
reject{|file| Rawr::Options.data.source_exclude_filter.inject(false) {|rejected, filter| (file =~ filter) || rejected} }.
|
89
|
+
map!{|file| OpenStruct.new(:file => file, :directory => directory)}
|
90
|
+
end.flatten!
|
91
|
+
|
92
|
+
ruby_source_file_list.each do |data|
|
93
|
+
file = data.file
|
94
|
+
directory = data.directory
|
95
|
+
|
96
|
+
relative_dir, name = File.split(file)
|
97
|
+
|
98
|
+
if name[0..0] =~ /\d/
|
99
|
+
processed_file = relative_dir + '/$' + name
|
100
|
+
else
|
101
|
+
processed_file = file
|
102
|
+
end
|
103
|
+
|
104
|
+
processed_file = processed_file.sub(/\.duby$/, '.class')
|
105
|
+
target_file = "#{Rawr::Options.data.compile_dir}/#{processed_file}"
|
106
|
+
|
107
|
+
if file_is_newer?("#{directory}/#{file}", target_file)
|
108
|
+
FileUtils.mkdir_p(File.dirname("#{Rawr::Options.data.compile_dir}/#{processed_file}"))
|
109
|
+
|
110
|
+
sh "dubyc -J-classpath #{directory}/#{file}"
|
111
|
+
File.move("#{directory}/#{processed_file}", "#{Rawr::Options.data.compile_dir}/#{processed_file}")
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
task :copy_other_file_in_source_dirs => "rawr:prepare" do
|
117
|
+
non_source_file_list = Rawr::Options.data.source_dirs.inject([]) do |list, directory|
|
118
|
+
list << Dir.glob("#{directory}/**/*").
|
119
|
+
reject{|file| File.directory?(file)}.
|
120
|
+
map!{|file| directory ? file.sub("#{directory}/", '') : file}.
|
121
|
+
reject{|file| Rawr::Options.data.source_exclude_filter.inject(false) {|rejected, filter| (file =~ filter) || rejected} }.
|
122
|
+
reject{|file| file =~ /\.rb|\.java|\.class/}.
|
123
|
+
map!{|file| OpenStruct.new(:file => file, :directory => directory)}
|
124
|
+
end.flatten!
|
125
|
+
|
126
|
+
non_source_file_list.each do |data|
|
127
|
+
file = data.file
|
128
|
+
directory = data.directory
|
129
|
+
puts "Copying non-source file #{file} to #{Rawr::Options.data.compile_dir}/#{file}"
|
130
|
+
FileUtils.mkdir_p(File.dirname("#{Rawr::Options.data.compile_dir}/#{file}"))
|
131
|
+
if file_is_newer?("#{directory}/#{file}", "#{Rawr::Options.data.compile_dir}/#{file}")
|
132
|
+
File.copy("#{directory}/#{file}", "#{Rawr::Options.data.compile_dir}/#{file}")
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
desc "Uses compiled output and creates an executable jar file."
|
138
|
+
task :jar => ["rawr:compile", "rawr:build_data_jars"] do
|
139
|
+
Rawr::Generator.create_manifest_file Rawr::Options.data
|
140
|
+
Rawr::Generator.create_run_config_file(Rawr::Options.data)
|
141
|
+
Rawr::JarBuilder.new("#{Rawr::Options.data.project_name}.jar", :directory => Rawr::Options.data.compile_dir).build
|
142
|
+
|
143
|
+
(Rawr::Options.data.classpath + Rawr::Options.data.files_to_copy).each do |file|
|
144
|
+
FileUtils.mkdir_p(File.dirname("#{Rawr::Options.data.jar_output_dir}/#{file}"))
|
145
|
+
File.copy(file, "#{Rawr::Options.data.jar_output_dir}/#{file}")
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
namespace :"bundle" do
|
150
|
+
desc "Bundles the jar from rawr:jar into a native Mac OS X application (.app)"
|
151
|
+
task :app => [:"rawr:jar"] do
|
152
|
+
require 'app_bundler'
|
153
|
+
Rawr::AppBundler.new.deploy Rawr::Options.data
|
154
|
+
end
|
155
|
+
|
156
|
+
desc "Bundles the jar from rawr:jar into a native Windows application (.exe)"
|
157
|
+
task :exe => [:"rawr:jar"] do
|
158
|
+
require 'exe_bundler'
|
159
|
+
Rawr::ExeBundler.new.deploy Rawr::Options.data
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
namespace :get do
|
164
|
+
desc "Fetch the most recent stable jruby-complete.jar"
|
165
|
+
task :'current-stable-jruby' do
|
166
|
+
require 'jruby_release'
|
167
|
+
#TODO: jruby-complete location should be formally recognized by config
|
168
|
+
Rawr::JRubyRelease.get 'stable', 'lib/java'
|
169
|
+
end
|
170
|
+
|
171
|
+
desc "Fetch the most recent build of jruby-complete.jar. Might be an RC"
|
172
|
+
task :'current-jruby' do
|
173
|
+
require 'jruby_release'
|
174
|
+
#TODO: jruby-complete location should be formally recognized by config
|
175
|
+
Rawr::JRubyRelease.get 'current', 'lib/java'
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|