Re: jar execution problem
Knute Johnson wrote:
Sascha wrote:
i [sic] got a problem with execution of jar [sic] files.
I used the following command to create a jar file.
jar -vcfm dice.jar MANIFEST.TXT dice
In the folder dice the Dice.class is located.
There's your problem.
The file MANIFEST.TXT contains only the following line
Main-Class: Dice
And there, just as Knute said.
When I try to execute the jar file with
java -jar dice.jar
And there, also as Knute said.
I got the error message
Exception in thread "main" java.lang.NoClassDefFoundError: Dice
I hope somebody else got the same problem and can help me out.
Does your Dice source file have a package statement? If you are running the
jar program from the directory above dice it will store the class files as
dice/Dice.class and that must match with the package statement in the source
file.
So as not to ask you a lot of questions, do this:
1) put your source files in the dice directory.
2) put a 'package dice;' statement in all source files
3) compile from the directory above dice with 'javac dice/Dice.java'
4) put the manifest file in dice and
in it put the line 'Main-Class: dice.Dice'
5) run the jar program from the directory above dice with
'jar -cvfm Dice.jar dice/manifest dice/*.class dice/anyotherfiles'
I usually keep my manifest file in the same directory but it isn't necessary.
You can use the 'e' option and skip using a manifest file it the only thing in
it is the Main-Class statement.
You cannot do serious Java programming without packages, nor should you try.
Study
<http://download.oracle.com/javase/tutorial/java/package/index.html>
For all known directory-based structures for serving up classfiles, the
directory structure from some root in the classpath must match the package
structure.
--
Lew
Honi soit qui mal y pense.
http://upload.wikimedia.org/wikipedia/commons/c/cf/Friz.jpg