#1 你写了一个HelloWorld.java
内容
#2 你用javac HelloWorld.java 编译生成HelloWorld.class 文件
#3 你执行了>java HelloWorld 输出结果:
#4 用jar打包:网上说需要个文件(文件名可以随意)定义Main-Class,定义个文件hello,内容为:Main-Class:HelloWorld,这个时候,你估计还知道要回车,空一空白行:
执行jar命令:
你得到如下的错误:
[quote]
F:\xxx>jar -cvfm xx.jar hello 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:174)
at sun.tools.jar.Main.main(Main.java:1233)
[/quote]
原因:清单文件不对,根源是用了参数-cvfm,其中m: -m 包含指定清单文件中的清单信息
去掉m参数执行:
得到结果:
[quote]
F:\xxx>jar -cvf xx.jar hello HelloWorld.class
已添加清单
正在添加: hello(输入 = 23) (输出 = 25)(压缩了 -8%)
正在添加: HelloWorld.class(输入 = 426) (输出 = 290)(压缩了 31%)
[/quote]
#5 执行命令:java -jar xx.jar
结果:
[quote]
F:\xxx>java -jar xx.jar
xx.jar中没有主清单属性
[/quote]
好了,你去打开xx.jar,修改里面的MANIFEST.MF文件。
添加:Main-Class:HelloWorld到文件中,回车换行,保存。
再次执行:java -jar xx.jar
结果:
[quote]
F:\xxx>java -jar xx.jar
Error: Invalid or corrupt jarfile xx.jar
[/quote]
说jar无效。
找原因,再次看到有人提起:Main-Class:之后要空格,于是加上
保存之后,执行
>java -jar xx.jar
结果:
成功了
内容
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello, China");
}
}
#2 你用javac HelloWorld.java 编译生成HelloWorld.class 文件
#3 你执行了>java HelloWorld 输出结果:
F:\xxx>java HelloWorld
Hello, China
#4 用jar打包:网上说需要个文件(文件名可以随意)定义Main-Class,定义个文件hello,内容为:Main-Class:HelloWorld,这个时候,你估计还知道要回车,空一空白行:
Main-Class:HelloWorld
执行jar命令:
jar -cvfm xx.jar hello HelloWorld.class
你得到如下的错误:
[quote]
F:\xxx>jar -cvfm xx.jar hello 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:174)
at sun.tools.jar.Main.main(Main.java:1233)
[/quote]
原因:清单文件不对,根源是用了参数-cvfm,其中m: -m 包含指定清单文件中的清单信息
去掉m参数执行:
jar -cvf xx.jar hello HelloWorld.class
得到结果:
[quote]
F:\xxx>jar -cvf xx.jar hello HelloWorld.class
已添加清单
正在添加: hello(输入 = 23) (输出 = 25)(压缩了 -8%)
正在添加: HelloWorld.class(输入 = 426) (输出 = 290)(压缩了 31%)
[/quote]
#5 执行命令:java -jar xx.jar
结果:
[quote]
F:\xxx>java -jar xx.jar
xx.jar中没有主清单属性
[/quote]
好了,你去打开xx.jar,修改里面的MANIFEST.MF文件。
添加:Main-Class:HelloWorld到文件中,回车换行,保存。
再次执行:java -jar xx.jar
结果:
[quote]
F:\xxx>java -jar xx.jar
Error: Invalid or corrupt jarfile xx.jar
[/quote]
说jar无效。
找原因,再次看到有人提起:Main-Class:之后要空格,于是加上
Manifest-Version: 1.0
Created-By: 1.8.0 (Oracle Corporation)
Main-Class: HelloWorld
保存之后,执行
>java -jar xx.jar
结果:
F:\xxx>java -jar xx.jar
Hello, China
成功了