2

我正在尝试使用 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 中添加了“代码”文件夹/包。虽然仍然有同样的错误。

4

3 回答 3

1

您应该将您的 Main 类放入一个包中,并相应地调整您的清单。那应该可以解决问题

于 2012-05-31T17:59:06.993 回答
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
于 2012-05-31T18:10:50.527 回答
0

.jar 扩展名的文件关联是什么?

双击 jar 文件应该使 jar 运行 javaw 命令。

尝试使用 javaw 使 jar 文件默认执行。

也看看这个: http: //www.wikihow.com/Run-a-.Jar-Java-File

于 2012-05-31T18:41:19.473 回答