网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

讨厌的manifest

http://www.diybl.com/ 2008-1-31  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

jar包要运行,必须指定manifest.mf
使用方法在很多地方都有说明
jar 命令的 -m 参数可以指定,但是有一些要注意的事情
manifest 文件在书写的时候
Main-Class: package.ClassName
这个属性中,冒号后面一定得是一个空格,空格多了或者使用 tab (制表符)代替空格都会出错

根据我的实验,在linux下执行 jar 命令的时候出现如下提示错误
java.io.IOException: invalid header field
        at java.util.jar.Attributes.read(Attributes.java:393)
        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)

在 windows xp 下很奇怪地在jar -m的时候没有错误提示,但无法执行(这种情况在多空格时出现,制表符情况没有实验)
执行 java -jar xxx.jar 的时候才提示如下错误
Exception in thread "main" java.lang.NoClassDefFoundError:   testPages/TestMain
Caused by: java.lang.ClassNotFoundException:   testPages.TestMain
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

很奇怪,不理解 java 为什么对这个问题表现得这么笨……

文章整理:DIY部落 http://www.diybl.com (本站)   【点击打包该文章】
如果图片或页面不能正常显示请点击这里 站内搜索:   

文章评论

请您留言