刚看了一下jar打包的问题,没有成功,就是一个HelloWorld的程序,代码如下:package jarTest;public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}运行 E:\eclipse\workspace\smilelee\jarTest\jar cvf hello.jar HelloWorld.class
E:\eclipse\workspace\smilelee\jarTest\java jar hello.jar
有异常产生
Exception in thread "main" java.lang.NullPointerException
at sun.launcher.LauncherHelper.getMainClassFromJar(Unknown Source
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
后尝试写了一个清单manifest.mf,就只有一行
Main-class:jarTest.HelloWorld
后面有两个空行e:\eclipse\workspace\smilelee\bin\jarTest>jar cvfm hello.jar manifest.MF HelloWorld.class
然后就悲剧了
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:410)
at java.util.jar.Manifest.read(Manifest.java:199)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at sun.tools.jar.Main.run(Main.java:172)
at sun.tools.jar.Main.main(Main.java:1177)
不懂为什么不行?用eclipse导出的时候总是会打包很多其他的文件,我想是因为我不晓得那个launch configuration要选什么,我依然是选的要打包的文件,结果是可以运行的,但是就是包含了那个包的其他文件。。
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}运行 E:\eclipse\workspace\smilelee\jarTest\jar cvf hello.jar HelloWorld.class
E:\eclipse\workspace\smilelee\jarTest\java jar hello.jar
有异常产生
Exception in thread "main" java.lang.NullPointerException
at sun.launcher.LauncherHelper.getMainClassFromJar(Unknown Source
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
后尝试写了一个清单manifest.mf,就只有一行
Main-class:jarTest.HelloWorld
后面有两个空行e:\eclipse\workspace\smilelee\bin\jarTest>jar cvfm hello.jar manifest.MF HelloWorld.class
然后就悲剧了
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:410)
at java.util.jar.Manifest.read(Manifest.java:199)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at sun.tools.jar.Main.run(Main.java:172)
at sun.tools.jar.Main.main(Main.java:1177)
不懂为什么不行?用eclipse导出的时候总是会打包很多其他的文件,我想是因为我不晓得那个launch configuration要选什么,我依然是选的要打包的文件,结果是可以运行的,但是就是包含了那个包的其他文件。。
:后要空一格
javac -d classes HelloWorld.java
jar cvfm hello.jar manifest.mf -C classes .
Main-Class大小写
这个方法行得通,能不能解释一下最后一条语句 " -C classes ."?