我正在尝试使用jar工具创建一个jar。 使用以下命令
jar.exe cmfv manifest.txt lol.jar Main.class
这将生成一个带有以下清单的jar:
Manifest-Version: 1.0
Created-By: 1.7.0_03 (Oracle Corporation)
Main-Class: Main
当我从命令行(java -jar lol.jar)运行jar时,它运行正常。但是,当我双击我文件夹中的jar时,它会出错:“找不到主类:Main.Program将退出。”
导致这种情况的原因是什么?
在尝试了一些东西后,Manifest目前看起来像这样:
Manifest-Version: 1.0
Class-Path: .
Created-By: 1.7.0_03 (Oracle Corporation)
Main-Class: code.Main
Main类添加了包声明。在jar中,添加了'code'文件夹/包。但是仍然有同样的错误。
答案 0 :(得分:1)
您应该将Main类放入包中,并相应地调整清单。那应该解决问题
答案 1 :(得分:0)
您需要将Main类放在类路径中。当您从命令行运行它时,您的当前目录会自动添加到您的类路径中,这就是它在那里工作的原因。双击它时,您没有像在类路径中那样指定jar的路径。有一些方法可以将类添加到清单中的类路径中。 下面是我的一个罐子的例子。 lib是jar中的一个文件夹,com / sample / CommandLineClient.class是我的主类。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.5.0_12-b04 (Sun Microsystems Inc.)
Class-Path: lib/args4j-2.0.19.jar lib/axis.jar lib/axis-ant.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar lib/jaxrpc.jar lib/log4j-1.2.8.jar lib/saaj.jar lib/wsdl4j-1.5.1.jar
Main-Class: com.sample.CommandLineClientSysIn
答案 2 :(得分:0)
.jar扩展名的文件关联是什么?
双击jar文件应该让jar运行javaw命令。
尝试使用javaw默认执行jar文件。