1

1 つのフォルダー /projects/A/Test.java に次のコードがあります。

public class Test {

    public static void t() {

        System.out.println("Hey");

    }

}

および folder#2 /projects/ で次のコードを使用します。

public class Test2 {

    public final static void main(String[] args) {

        Test t = new Test();

        t.t();

    }

}

最初のものを javac Test.java でコンパイルし、2 番目のものを javac Test2.java -cp ./A でコンパイルします。

Test2: Java Test2 を実行しようとすると、次のエラーが表示されます。 Exception in thread "main" java.lang.NoClassDefFoundError: Test

サブフォルダーから Test を呼び出す Test2 を実行するにはどうすればよいですか?

4

2 に答える 2

2

クラスが別の場所にある場合は、コンパイル時と同様に、実行時にクラスパスを設定する必要があります。

java -cp .:./A Test2                           # On Unix use :, on Windows ;
于 2013-07-01T13:24:42.667 に答える
0

問題は、クラス テストでは、ファイルの先頭にパッケージを指定する必要があることです。

package A;

そして、それを Test2 クラスにインポートします。

import A.Test

project と project/A の両方の場所がクラスパスにある場合は、package と import Test を設定する必要はありません

于 2013-07-01T13:27:01.817 に答える