我在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 [options] -jar file.jar [argument ...]
我几乎感觉到我在终端输入错误的命令。是什么给了什么?
编辑:MANIFEST.MF包含:
Manifest-Version 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: mypkg.Starter
Class-Path: .
答案 0 :(得分:3)
查看META-INF/MANIFEST.MF
文件的内容;确保您的Main-Class
使用的是正确的课程。
答案 1 :(得分:2)
您的清单指定mkpkg.MyTest
作为主类文件,而您实际发布的文件名称为mypkg.MyTest
。
另外,您指定Classpath为“。”。在你的清单中,充其量是多余的,但可能导致你看到的问题(因为你可能在你的本地目录中有一个名为mkpkg
的目录。)
答案 2 :(得分:1)
如果你知道你的主要课程,你可以在没有-jar选项的情况下完成。
java -classpath .:my_jar_file.jar; package.MainClass [arguments]
这对Debian Lenny来说很有用。