4

OpenJDK 1.6.0_18を使用して、Ubuntu10.10で次のコードを実行しています。

 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-jarmytest.jarこれはテストです

これは、Javaドキュメントの私の解釈であり、次のように述べています。

java[オプション]-jarfile.jar[引数...]

ターミナルで間違ったコマンドを入力しているような気がします。何が得られますか?

編集: MANIFEST.MFには以下が含まれます:

Manifest-Version 1.0
Created-By: 1.6.0_18 (Sun Microsystems Inc.)
Main-Class: mypkg.Starter
Class-Path: .
4

3 に答える 3

3

META-INF/MANIFEST.MFファイルの内容を見てください。Main-Class正しいクラスを使用していることを確認してください。

于 2010-11-12T15:11:26.980 に答える
2

マニフェストmkpkg.MyTestはメインクラスファイルとして指定しますが、実際に投稿したファイルの名前はmypkg.MyTestです。

また、「。」のクラスパスを指定します。マニフェストでは、これはせいぜい不要ですが、おそらく問題が発生する可能性がありmkpkgます(ローカルディレクトリに名前が付けられたディレクトリがあるため)。

于 2010-11-12T15:12:48.423 に答える
1

メインクラスを知っている場合は、-jarオプションなしでそれを行うことができます。

java -classpath .:my_jar_file.jar; package.MainClass [arguments]

これはDebianLennyで私のために働いています。

于 2010-11-12T14:57:10.020 に答える