I'm trying to create a .jar file using the mac terminal but am having bit of trouble. I followed the steps here but was unsuccessful. I got this error message:
Failed to load Main-Class manifest attribute from
aclient.jar
So how exactly do you go about doing it? My java program is called Main.java and I have compiled it into a .class file. Now what do I do?
Thanks
The standard way to create a JAR file, of course, is to use the command-line jar command included with Mac OS X's JDK. Open the Terminal, type jar , and a list of options will appear: Usage: jar {ctxu}[vfm0M] [jar-file] [manifest-file] [-C dir] files ...
1) Ensure that all necessary files are within the directory, you have opened a terminal/Command Prompt and have navigated to that directory.
2) Compile the .java class, for example HelloWorld.java with
javac HelloWorld.java
3) This will produce a .class file needed for the JAR file.
4) Next create a manifest file (saved using the extension .txt) using the text editor and input the following
Main-Class: HelloWorld
or whatever your file's name is.
5) Next create the JAR file using this code:
jar cfm HelloWorld.jar Manifest.txt HelloWorld.class
6) Run the file:
java -jar HelloWorld.jar
If anything seems unclear consult these websites: creating a jar file and setting an applications entry point.
Hope this helps others, cheers Tom!
Edit:
Following inga's comment it's worth noting that in order to include multiple files in the jar you need to use the:
javac *.java
followed by
jar cfm HelloWorld.jar Manifest.txt *.class
Yes, we need to use new line at the end of class name... It worked for me
i.e. Main-Class: HelloWorld
It will look like this in Notepad++
1.Main-Class: HelloWorld
2.
Maybe this will help re Manifest.txt file:
Warning: The text file must end with a new line or carriage return. The last line will not be parsed properly if it does not end with a new line or carriage return.
You need to have an text file that defines the main class. E.g.
% cat MyMain
Main-Class: HelloWorld
then
%jar cvfm foo.jar MyMain *.class
%java -jar foo.jar
Hello world
See: http://java.sun.com/j2se/1.4.2/runtime.html#example.
I followed the instructions and was getting issue while loading the Manifest.txt file.
In Manifest.txt we just simply need to write Main-class: class_name
But after above statement please press enter in Manifest.txt and your Manifest.txt load issue will be resolved. New line at the end of Manifest file is required.
Regards
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With