This week's book giveaway is in the Mac OS forum.
We're giving away four copies of a choice of "Take Control of Upgrading to Yosemite" or "Take Control of Automating Your Mac" and have Joe Kissell on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Jar Files and Classpath Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Jar Files and Classpath" Watch "Jar Files and Classpath" New topic

Jar Files and Classpath

J Solomon

Joined: Oct 08, 2012
Posts: 28

I have a question and any help would be greatly appreciated. My question is regarding setting classpath and jar files. Say I have a typical 'HelloWorld.class' and it lives in '/home/me/' dir. I execute it as follows:

Now say I package that class up in a jar file, using a manifest file that points to HelloWorld as the entry point, do I need to give a classpath when I execute that jar file, or is the jar format aware of the classpath? I understand if I would like to reference other jar files then I would need to make sure the appropriate classpath is defined for each jar file in the manifest, but what about just that one class in simplest form?

I know this probably sounds confusing so please let me know if it needs further clarification.
Paul Clapham

Joined: Oct 14, 2005
Posts: 18570

No. In fact when you run an executable jar (via "java -jar executable.jar") you cannot specify a classpath at the command line. The classpath is entirely based on the jar file and nothing else (no -cp argument, no CLASSPATH environment variable, nothing else).

So if your executable jar contained only the HelloWorld class, you just run it using the "java -jar" command. If it happens that the HelloWorld class needs access to other classes which aren't in the jar, then the jar's manifest should have a "Class-Path" entry which says what those jars are and where they are relative to the executable jar.
GeeCON Prague 2014
subject: Jar Files and Classpath