Java Jar中忽略了参数

时间:2010-11-12 14:52:07

标签: ubuntu jar java executable-jar

我在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: .

3 个答案:

答案 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来说很有用。