我用Eclipse直接导出jar包
其中manifest.mf中的信息已设置成:
Manifest-Version: 1.0
Class-Path: *.jar (注:*为我的jar包的名称)
Main-Class: *但为什么双击jar包之后还是不能自运行呢?
而jdk下的demo中的jar包却可以双击自运行的。搞了好久了,还是没有搞定,请各位大虾帮忙。
其中manifest.mf中的信息已设置成:
Manifest-Version: 1.0
Class-Path: *.jar (注:*为我的jar包的名称)
Main-Class: *但为什么双击jar包之后还是不能自运行呢?
而jdk下的demo中的jar包却可以双击自运行的。搞了好久了,还是没有搞定,请各位大虾帮忙。
应该是:Main-Class: *.class
不是的
确实应该是Main-Class: *
jar包的路径是什么意思啊?
一定要的。
不然它会说找不到MainClass
Main-Class 确实是需要的
但参数 MyClass 却不需要后缀 .class
这里的 xxx.jar 是 你打的这个 jar 外面的其他的 jar ,
xxx.jar 不是 在 打包后的 jar 里面。听明白了么?/package/SomeThing.class
/META-INF/MANIFEST.MF
/abc.jar如果你导出的 jar 是上面的这样的结构,
那么 你的 Manifest.mf 中如果 class-path 中使用 abc.jar 本身也在 打包后的 jar 里面的话,
那么就找不到 abc.jar ,因为 class-path 是到文件系统中找,而不会到 jar 里面找。
我明白你的意思了。
但是问题还是没有解决。
事实上,
我的manifest.mf里面用不着写Class-Path的,
因为我的程序并没有调用其他的jar包。
只是因为我不能双击运行,我才加上它来试一试的。
我现在把Class-Path删了,
但问题依旧。大家帮帮忙啊。
这个错了, Main-Class 就像是你的 dos 命令行一样, 你不可能
abc*.exe 这样来运行一串命令,你只能指定一个 带有 Main 方法的 Class ( 带包名的) 。还要记住 每个条目冒号后面应该有个空格,class-path 长度不超过每行 70 个英文字符,如果多了就换行,而且确保换行后 行首有一个 空格, 整个文件的最后又一个换行符。
但我确实与您说的一样。
但还是不行啊。
我把我的目录结构以及manifest.mf的内容贴出来吧。
/MapGraph/SomeClassFiles.class
/META-INF/manifest.mf
/some_resource.*manifest.mf:
Manifest-Version: 1.0
Created-By: Fe
Main-Class: MapGraph.GraphMain注:我是用Eclipse直接将工程export的。会不会是这个原因啊?
确实一致。
因为我就是从我的jar包里面拷过来的。
Main-Class: drawsmart.lingtu.AppMain这个是一个可以运行的jar文件的MF内容,使用JB打包的,不知道Eclipse打包是否和这个区别很大
这样应该可以找到带有main方法的类,如果还是运行不了,估计是那个main函数运行出错,这样在命令行方式下面就可以看到了
还有如果引用了其他的jar包,看看打包的时候是不是也打进去了