Create a java executable with Eclipse
Solution 1
You need to create an executable JAR file. Steps will follow shortly.
Right click on the project and select JAR file under Export.
Enter the path where you want it to be saved. The example here is of Windows. Change according to your platform.
Click Next.
Edit the Main Class field by browsing and selecting the location of your class that contains the main
method.
Run it
To run the JAR file, open up a shell or command prompt and execute the following command:
java -jar path/to/test.jar
Solution 2
In Eclipse, choose file then export, and you will have to choose runnable jar. Also, you will be prompted to select the main class, MyTest in your case.
Solution 3
The Eclipes tutorials are very helpful, if you do the "create a Hello World application" tutorial it will walk you through the process of setup the project, building the app and running the jar file.
Solution 4
I want to know how to compile it ...
See other answers on how to get Eclipse to create a JAR file.
... and then how to execute it from the command line.
In the simple case, you execute it by running java -jar yourApp.jar <args>
.
If your application depends on external libraries, then it is a bit more complicated ...
how come I would choose jar file over executable jar file?
- Because a JAR file is portable, and a binary executable is not.
- Because JIT compiled code runs faster than code that is compiled ahead of time.
- Because the standard Java tool chain does not support creation of binary executables. Ditto for Eclipse, AFAIK.
Micah
Updated on September 05, 2020Comments
-
Micah over 3 years
This is a totally newbie question. I'm running Eclipse on Ubuntu. I created a test project that I want to compile to an executable (whataver the linux equivalent is of a Windows .exe file). Here's the contents of my program:
public class MyTest { public static void main(String[] args) { System.out.println("You passed in: " + args[0]); } }
I want to know how to compile it and then how to execute it from the command line.
Thanks!