请教JAVA 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教JAVA 问题相关的知识,希望对你有一定的参考价值。
想请问JAVA 高手如何解决以下问题, 谢谢:
编译好JAVA 程序后,将之用JAR 指令压缩成 .jar 文件再执行后出现以下讯息。想请教该如何解决。
Failed to load Mani-Class manifestattribute from
C:\Sun\SDK\jdk\bin\cpu09\cpu09.jar
谢谢指点,但根据答复去做还是出现以下讯息:
C:\Sun\SDK\jdk\bin\cpu09>jar cvfm cpu09.jar Manifest.txt
java.io.IOException: invalid header field name: ???Main-Class
at java.util.jar.Attributes.read(Attributes.java:409)
at java.util.jar.Manifest.read(Manifest.java:167)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:123)
at sun.tools.jar.Main.main(Main.java:903)
Manifest文件是要加入Main-Class: cpu09.frame.CPU09 但解压缩JAR 文件后发现 Mainfest文件没变化,而CPU09.JAR 还是不能执行。
请问要如何解决,谢谢。
1、建立一个文件夹,将你编译好的所有类放在这个文件夹里面。这里我们假设已经写好了一个Swing.class,那么把这个Swing.class放到这个文件夹
2、新建一个文件,文件名为manifest.mf,用记事本打开它,编辑里面的内容为Main-Class: Swing(然后按回车,记住一定要按回车,而且这里的类名不能带.class)
3、进行命令行,输入命令:jar cvfm Swing.jar manifest.mf *
看看文件夹下面是不是生成一个Swing.jar文件,如果你是用Swing或者AWT写的java程序,这时可以直接双击这个文件运行。 参考技术A 是 .jar 压缩包中 META-INF/MANIFEST.MF
文件不一样, 多了一行, Main-Class: xxxxx, 再看看出错信息, 原来是没有指定
Main-Class, 看看 jar 命令, 发现有一个参数 -m,
-m include manifest information from specified manifest file
和出错信息有点关系, 看来它要读一个配制文件. 只好照猫画虎写一个了.
[classes]$ cat myManifest
Manifest-Version: 1.0
Main-Class: pktest.PackageTest
Created-By: 1.2.2 (Sun Microsystems Inc.)
[classes]$ jar cvfm mypackage.jar myManifest pktest
added manifest
adding: pktest/(in = 0) (out= 0)(stored 0%)
adding: pktest/PackageSecond.class(in = 659) (out= 395)(deflated 40%)
adding: pktest/subpk/(in = 0) (out= 0)(stored 0%)
adding: pktest/subpk/PackageSub.class(in = 744) (out= 454)(deflated 38%)
adding: pktest/PackageTest.class(in = 1041) (out= 602)(deflated 42%)
[classes]$ java -jar mypackage.jar
Value of PackageTest is This is a Test Package
Value of PackageSecond is I am in PackageTest
Value of PackageSecond is I am in subpackage.
Value of PackageSub is I am in PackageTest
好了, 成功了, 这样就做好了一个可以直接执行的 .jar 文件. 参考技术B manifest文件有问题,
下个BlueJ,轻松搞定
http://www.bluej.org/download/download.html
或者用Ant
补充:
个人认为自己做jar有不确定性,特别是中文的系统,建议用工具,以上提供的工具都是免费的 参考技术C 我也遇到过这个问题,期待回答....
以上是关于请教JAVA 问题的主要内容,如果未能解决你的问题,请参考以下文章