1

我在一个文件夹 /projects/A/Test.java 中有以下代码:

public class Test {

    public static void t() {

        System.out.println("Hey");

    }

}

并在文件夹#2 /projects/ 中使用以下代码:

public class Test2 {

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

        Test t = new Test();

        t.t();

    }

}

我用 javac Test.java 编译第一个 我用 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 都在您的类路径中,则不必设置包和导入测试

于 2013-07-01T13:27:01.817 回答