有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java:多包最小工作示例

试图理解Java包如何与类路径等一起工作。在~/Java/tmp/test/HelloWorld中,我创建了HelloWorld。爪哇:

package test;
import test2.Hello2;
public class HelloWorld {
    public static void main(String[] args) {
        Hello2 x = new Hello2();
        x.blagh(args);
    }
}

然后在~/java/tmp/test2/Hello2中我创建了Hello2。爪哇:

package test2;
public class Hello2
{
    public static void blagh(String[] args) {
        System.out.println("Hello, World");
    }
}

在~/java/tmp中工作时,我尝试使用以下方法进行编译:

javac -g test/HelloWorld/HelloWorld.java

我发现以下错误:

test/HelloWorld/HelloWorld.java:3: package test2 does not exist
import test2.Hello2;
            ^
test/HelloWorld/HelloWorld.java:8: cannot find symbol
symbol  : class Hello2
location: class test.HelloWorld
        Hello2 x = new Hello2();
        ^
test/HelloWorld/HelloWorld.java:8: cannot find symbol
symbol  : class Hello2
location: class test.HelloWorld
        Hello2 x = new Hello2();

我尝试过设置类路径(我能想到的以上路径的所有可能组合)、更改运行编译器的目录等等,但都没有效果。请帮忙


共 (1) 个答案

  1. # 1 楼答案

    您的HelloWorld.java属于包test,因此它应该位于名为test的目录中,而不是test/HelloWorld。和Hello2.java一样,它应该生活在test2,而不是test2/Hello2。将HelloWorld.java移动到test目录,将Hello2.java移动到test2目录,再试一次