So I’ve written a funny little program and I want to show it to some of my friends. My friends, not being programmers, have no idea what to do if I send them the folder containing the necessary classes and files. I want to be able to email them something (or put it on a cd/thumbdrive) that they can then double click and have it run the program. I have absolutely no clue how to make this happen. I’m taking a class and we use linux computers (I use a mac when I’m not in class) and we have to javac the .java files and then java “File name” to make it run. I have friends on Mac’s and PC’s and I want them to be able to just click the program and have it go….
If it makes a difference the program is written using the object draw library.
Use the
jarcommand to build an executable jar file. It’s basically a ZIP file with certain guarantees.Within the jar file you will need (it’s a reqirement) a /META-INF directory with a file in it called the manifest (/META-INF/MANIFEST.MF). It describes the “manifest” of the jar file, which is in some ways modeled off a shipping manifest.
Inside the MANIFEST.MF file, you need the directive
Which should direct the JVM to run the org.mystuff.path.Main class when the jar file is “exectued” via the command
Note that JAR files tend to handle classpaths differently, in the sense that they ignore the CLASSPATH environmental variable, and the -classpath command line options. You need to add a classpath directive within the MANIFEST.MF file if you need to reference other JAR files. Use the manifest link above to see the details concerning embedding a classpath.
Depending on the simplicity of the “project”, a single JAR file might be enough to ship to them; however, if you need more than that, you might find yourself having to ship a few files in a few directories. In that case, put the files (including the JAR file) and directories in a second zip file. While you could select from a number of different ways to “package” the items, I recommend
With such a zip-file structure, the installation instructions then become “unzip the zip file; change directory to “bin” and run “myprogram.whatever”.