Tutorial :How do I create executable Java program? [duplicate]



Question:

This question already has an answer here:

I have programmed a Java Program in JCreator, everything is done, but I want to create an executable file from it, ie I dont want to have to run the program by loading the java classes and compiling then executing, but instead have it as a stand alone executable file.

What the quickest way to do this?


Solution:1

You can use the jar tool bundled with the SDK and create an executable version of the program.

This is how it's done.

I'm posting the results from my command prompt because it's easier, but the same should apply when using JCreator.

First create your program:

$cat HelloWorldSwing.java      package start;        import javax.swing.*;        public class HelloWorldSwing {          public static void main(String[] args) {              //Create and set up the window.              JFrame frame = new JFrame("HelloWorldSwing");              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                JLabel label = new JLabel("Hello World");              frame.add(label);                //Display the window.              frame.pack();              frame.setVisible(true);          }      }      class Dummy {          // just to have another thing to pack in the jar      }  

Very simple, just displays a window with "Hello World"

Then compile it:

$javac -d . HelloWorldSwing.java  

Two files were created inside the "start" folder Dummy.class and HelloWorldSwing.class.

$ls start/  Dummy.class     HelloWorldSwing.class  

Next step, create the jar file. Each jar file have a manifest file, where attributes related to the executable file are.

This is the content of my manifest file.

$cat manifest.mf  Main-class: start.HelloWorldSwing  

Just describe what the main class is ( the one with the public static void main method )

Once the manifest is ready, the jar executable is invoked.

It has many options, here I'm using -c -m -f ( -c to create jar, -m to specify the manifest file , -f = the file should be named.. ) and the folder I want to jar.

$jar -cmf manifest.mf hello.jar start  

This creates the .jar file on the system

enter image description here

You can later just double click on that file and it will run as expected.

enter image description here

To create the .jar file in JCreator you just have to use "Tools" menu, create jar, but I'm not sure how the manifest goes there.

Here's a video I've found about: Create a Jar File in Jcreator.

I think you may proceed with the other links posted in this thread once you're familiar with this ".jar" approach.

You can also use jnlp ( Java Network Launcher Protocol ) too.


Solution:2

If you are using Eclipse , you can try the below 7 steps to get a .exe file for Windows.

step1step2step3

Now you have a JAR file. Use java -jar path/jarname.jar to execute.

enter image description here


If you want to convert this to .exe, you can try http://sourceforge.net/projects/launch4j/files/launch4j-3/

STEP5STEP6

STEP7: Give the .xml file an appropriate name and click "Save". The .xml file is standard, don't worry about it. Your executable file will now be created!


Solution:3

I'm not quite sure what you mean.

But I assume you mean either 1 of 2 things.

  • You want to create an executable .jar file

Eclipse can do this really easily File --> Export and create a jar and select the appropriate Main-Class and it'll generate the .jar for you. In windows you may have to associate .jar with the java runtime. aka Hold shift down, Right Click "open with" browse to your jvm and associate it with javaw.exe

  • create an actual .exe file then you need to use an extra library like

http://jsmooth.sourceforge.net/ or http://launch4j.sourceforge.net/ will create a native .exe stub with a nice icon that will essentially bootstrap your app. They even figure out if your customer hasn't got a JVM installed and prompt you to get one.


Solution:4

On the command line, navigate to the root directory of the Java files you wish to make executable.

Use this command:

jar -cvf [name of jar file] [name of directory with Java files]  

This will create a directory called META-INF in the jar archive. In this META-INF there is a file called MANIFEST.MF, open this file in a text editor and add the following line:

Main-Class: [fully qualified name of your main class]  

then use this command:

java -jar [name of jar file]  

and your program will run :)


Solution:5

Take a look at WinRun4J. It's windows only but that's because unix has executable scripts that look (to the user) like bins. You can also easily modify WinRun4J to compile on unix.

It does require a config file, but again, recompile it with hard-coded options and it works like a config-less exe.


Solution:6

Jexecutable can create Windows exe for Java programs. It embeds the jars into exe file and you can run it like a Windows program.


Solution:7

You could use GCJ to compile your Java program into native code.
At some time they even compiled Eclipse into a native version.


Solution:8

Write a script and make it executable. The script should look like what you'd normally use at the command line:

java YourClass  

This assumes you've already compiled your .java files and that the java can find your .class files. If java cannot find your .class files, you may want to look at using the -classpath option or setting your CLASSPATH environment variable.


Solution:9

Take a look at launch4j


Solution:10

Java Web Start is a good technology for installing Java rich clients off the internet direct to the end user's desktop (whether the OS is Windows, Mac or *nix). It comes complete with desktop integration and automatic updates, among many other goodies.

For more information on JWS, see the JWS info page.


Solution:11

As suggested earlier too, you can look at launch4j to create the executable for your JAR file. Also, there is something called "JExePack" that can put an .exe wrapper around your jar file so that you can redistribute it (note: the client would anyways need a JRE to run the program on his pc) Exes created with GCJ will not have this dependency but the process is a little more involved.


Solution:12

If you are using NetBeans, you just press f11 and your project will be build. The default path is projectfolder\dist


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »