"Invalid or corrupt jarfile" java -jar manifest file
Problem:
Packaging up a class with a main method into a jar-file using ant gives the following error when you try to run it with the
java -jar [jarfile]
command: "Invalid or corrupt jarfile".Solution:
Using the ant task to create the manifest file on-the-fly gives you and entry like:
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.6.2 Created-By: 1.4.2_07-b05 (Sun Microsystems Inc.) Main-Class: com.example.MyMainClass
Creating the manifest file myself, with the bare essentials fixes the issue:
Manifest-Version: 1.0 Main-Class: com.example.MyMainClass
With more investigation I'm sure I could have got the dynamic meta-file creation working with Ant as I know other people do - there must be some peculiarity in the combination of my ant version (1.6.2), java version (1.4.2_07) and perhaps the current phase of the moon.
Notes:
Parsing of the Meta-inf file has been an issue that has come-up, been fixed and then come-up again for sun. See: Bug Id: 4991229. If you can work out if this bug exists in the your (or my) version of the Java SE you have more patience that me.
NICE! Old, but save my day!
ReplyDelete