Packaging Jython scripts in a single executable Jarfile
There's a lot of outdated and just plain wrong information on the internet about
packaging Jython scripts. After I wanted to start a project in Jython, I figured
I should find a simple, easy way to package your app as an executable (i.e.,
.jar. Turns out, it's a lot easier than it seems.
The only caveat to this process seems to be to use a relatively-recent Jython version. Some poking around suggests >2.5.1 should work, I used 2.5.3.
First, download jython-standalone,
and copy it to your project directory as
jython.jar. Next, create the file
manifest.txt with the following content:
Now, create run.py with the following content:
And create the folder app. You can place any additional startup code in
app/__init__.py, along with placing your other code
app. Now, code the same as you would any other Python project (along
with all that Jython goodness). When you want to build your project, create a
shell script with this:
#!/bin/sh rm output.jar 2>/dev/null cp jython.jar output.jar zip -r output.jar app zip output.jar __run__.py jar ufm output.jar manifest.txt rm jartmp*.tmp 2>/dev/null echo "Done building!"
Which will package your app as
output.jar. Now, you can run
java -jar output.jar, or double-click