Re: Unable to execute program using the jar option.



dan wrote:
Oddly I am unable to execute my jar directly (without getting an
exception); however, by specifying the class directly it runs just
fine.

If I had to guess.. it seems that it is related to my 2 system
properties .. it is behaving as if my classpath is being corrupted
when I use the -jar flag.

When run with "-jar", the "java" command ignores any external classpath and looks only in the JAR manifest for its class paths.

<http://java.sun.com/docs/books/tutorial/deployment/jar/run.html>:
The -jar flag tells the interpreter that the application is packaged in the JAR file format. You can only specify one JAR file, which must contain all the application-specific code.

and <http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.html>:
The user class path is specified as ... The JAR archive specified by the -jar option, which overrides all other values. If this option is used, all user classes come from the specified archive.
....
A JAR file usually contains a "manifest" -- a file which lists the contents of the JAR. The manifest can define a JAR-class-path, which further extends the class path (but only while loading classes from that JAR).

--
Lew
.



Relevant Pages

  • Re: Unable to execute program using the jar option.
    ... by specifying the class directly it runs just ... looks only in the JAR manifest for its class paths. ... You can only specify one JAR file, which must contain all the application-specific code. ... all user classes come from the specified archive. ...
    (comp.lang.java.programmer)
  • Unable to execute program using the jar option.
    ... by specifying the class directly it runs just ... (specifying the jar file to run) ... Exception: I believe the exact Exception is irrelevant to this issue ... path definately has the jar file that contains the class the exception ...
    (comp.lang.java.programmer)
  • Re: JAR Files with Class Paths
    ... Using the classpath of the jar manifest file was one of my original ... Specifying the classpath within the manifest results in the ...
    (comp.lang.java.programmer)