jar的问题:用jar打包怎么出错了啊?

meteor108 2004-07-23 07:53:53
加精
小弟刚刚开始学习Java,用的是JCreator.
在用JCreator将Java程序打包后运行,它提示出错说:
Failed to load Main-Class manifest attribute from HelloWorld.jar
我以为是JCreator的问题,于是自己用jar来打包:
jar cvf HelloWorld.jar src(我的源文件和.class文件放在目录src里)
运行,还是一样的错误:
Failed to load Main-Class manifest attribute from HelloWorld.jar
不知道这是为什么?还望各位大师指点指点!
...全文
486 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ulien 2005-03-20
  • 打赏
  • 举报
回复
你用jar cvfm classes.jar mymanifest -C foo/ . 试试!!
不要忘了最后一个点
这是命令行方式的
我用了有用的哈^_^
ulien 2005-03-20
  • 打赏
  • 举报
回复
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
-c 创建新的存档
-t 列出存档内容的列表
-x 展开存档中的命名的(或所有的〕文件
-u 更新已存在的存档
-v 生成详细输出到标准输出上
-f 指定存档文件名
-m 包含来自标明文件的标明信息
-0 只存储方式;未用ZIP压缩格式
-M 不产生所有项的清单(manifest〕文件
-i 为指定的jar文件产生索引信息
-C 改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序

示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
文件存档到一个名为 'classes.jar' 的存档文件中:
jar cvfm classes.jar mymanifest -C foo/ .
网事随逢 2005-03-04
  • 打赏
  • 举报
回复
mark...
casinosun 2004-08-26
  • 打赏
  • 举报
回复
用命令行打包,jcreator有问题manifest 文件
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: demo
我一直是这样用的,没问题
casinosun 2004-08-26
  • 打赏
  • 举报
回复
Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: demo
YuLimin 2004-08-26
  • 打赏
  • 举报
回复
jar cvf HelloWorld.jar src(我的源文件和.class文件放在目录src里)

这样有问题,先进入到src目录中,然后

jar cvf HelloWorld.jar *.*

再java -jar HelloWorld.jar
param 2004-08-25
  • 打赏
  • 举报
回复
jar cvfm YourProgram.jar YourList.mf -C src .
试一下,
不行的话把manifest文件中Main-Class:demo (回车)
注意最后要有回车键不然java编译器不认为这一行结束,试试吧
fins 2004-08-04
  • 打赏
  • 举报
回复
up
我也遇到类似问题
kitty009 2004-07-25
  • 打赏
  • 举报
回复
Main-Class: demo
这个指定主文件的指向是不是错了
比如你封包了(package)
就要写成Main-Class: 包名\demo //抱歉我忘了是哪边的杠了,懒得查,你试试吧~~

nwsl 2004-07-25
  • 打赏
  • 举报
回复
不要忘了在jdk的bin目录下执行jar命令。class文件的路径也要以bin目录为基准。要么用cvf,要么用cvfm(这时候指定manifest文件)
nwsl 2004-07-25
  • 打赏
  • 举报
回复
D:\j2sdk14\bin>jar cvf classes.jar GetAdHtmlServlet.class
标明清单(manifest)
增加:GetAdHtmlServlet.class(读入= 1869) (写出= 920)(压缩了 50%)

没有manifest清单也可以。
nwsl 2004-07-25
  • 打赏
  • 举报
回复
你把main方法去掉试试。我只是猜测。
meteor108 2004-07-25
  • 打赏
  • 举报
回复
还是不行啊,现在是如果不加清单,出来的错误是
Failed to load Main-Class manifest attribute from HelloWorld.jar.
如果加了清单,出来的错误是
Could not find the main class.Program will exit.
Java怎么这般BT啊?
meteor108 2004-07-25
  • 打赏
  • 举报
回复
应该不会错吧,因为我的程序只有一个类demo,而且也没有用package,就是那个经典的HelloWorld.java啊?
meteor108 2004-07-24
  • 打赏
  • 举报
回复
谢谢,只是改完后成了这个错误了:
Could not find the main class.Program will exit.
我的MF文件是这么写的:
Manifest-Version: 1.0
Created-By: 1.4.2_02 (Sun Microsystems Inc.)//这两行我去掉后还是出现同样的错误
Main-Class: demo
(空行)
不知道这次又是怎么回事,是不是和ClassPath的设置有关啊?我装的是JCreator,从没考虑也没机会考虑ClassPath的设置啊,到底是怎么回事啊?FAINT.....
HC_Nature 2004-07-24
  • 打赏
  • 举报
回复
那是因为你少了一个清单文件
1。可以手工编辑一个: 用记事本 编辑如下 Main-Class:含有main()方法的类名
但是切记 不要给输入.class 只文件名就够了! 还有就是最后一定要加上一个换行符
不然是识别不出来的
2。然后保存为 *.mf
3。jar cvfm YourProgram.jar YourList.mf src

meteor108 2004-07-23
  • 打赏
  • 举报
回复
怎么没人理我 :(
HELP!!!

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧