【发布时间】:2010-11-12 14:52:07
【问题描述】:
我在 Ubuntu 10.10 上使用 OpenJDK 1.6.0_18 运行以下代码:
package mypkg;
public class MyTest {
public static void main(final String[] args) {
System.out.println(args.length + " argument(s)");
for (final String arg : args) {
System.out.println(arg);
}
}
}
编译成Jar后,我完全不明白为什么从终端执行以下命令返回0 argument(s):
java -jar mytest.jar 这是一个测试
这是我对the Java docs的解释,声明:
java [ 选项 ] -jar file.jar [ 参数 ... ]
我几乎感觉我在终端中输入了错误的命令。什么给了?
编辑: MANIFEST.MF 包含:
Manifest-Version 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: mypkg.Starter
Class-Path: .
【问题讨论】:
-
你的 jar 的 META-INF/MANIFEST.MF 包含什么?
-
我已经更新了 OP。 Main-Class 路径与包声明相同。
-
哇。我觉得自己像个白痴。毕竟是
Main-Class:我正在启动一个不同的类来处理参数,并将它们(错误地)传递给所需的类。 -
@Rob 您可以使用您的评论作为答案,我会接受它,因为这实际上是导致我找到问题根源的原因。
-
有时找出问题所需要的只是向其他人解释您的问题。 :) - 很高兴你明白了。
标签: ubuntu jar java executable-jar