Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Java Compilation

  1. Aug 11, 2010 #1
    I have a java program in Eclipse, and was wondering how to make it such that i can take a file or two onto another computer and run the program without the Eclipse GUI (i.e. as you would run/install a normal program). I am hopelessly lost from googling, as I understand nothing.

    What is the best way to go about this?

  2. jcsd
  3. Aug 11, 2010 #2
    Eclipse will stuff all the compiled .class files into some directory, I think [Project]/bin is the default but I always override it to be .../classes. You can copy those files to your target computer (or put them into a jar file, using the command line while in the classes directory: jar cvf my.jar *). To execute your program:
    java -classpath . MyProgramName
    java -classpath my.jar MyProgramName
    where MyProgramName is the name of the java file which contains your main() method.
  4. Aug 11, 2010 #3

    Filip Larsen

    User Avatar
    Gold Member

    Note, that you can get Eclipse to help you pack all the needed files into a jar file by using right-clicking your Eclipse project and select Export / Java / JAR File or Runnable JAR File (use the build-in help on the resulting dialogs if you need more help on how to export).

    If you program creates a GUI then the Runnable JAR File is useful as you can then simply run the file directly by running it from the Windows Explorer on any Windows where Java is installed. If you program only outputs to the console you probably want to make a small CMD file that contains the "java -jar jarfile.jar" command for you (so that running the CMD will make Windows open a console window and show your output).
  5. Aug 11, 2010 #4
    Wow...I always wondered why Eclipse didn't have some easy way to create jar files...duh.
  6. Aug 11, 2010 #5
    Thank you all. I will probably come back when I run into problems when I try this in a week (when the code is completely debugged), but for now I have some idea what I am doing.

Share this great discussion with others via Reddit, Google+, Twitter, or Facebook