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 楼答案
您的
HelloWorld.java
属于包test
,因此它应该位于名为test
的目录中,而不是test/HelloWorld
。和Hello2.java
一样,它应该生活在test2
,而不是test2/Hello2
。将HelloWorld.java
移动到test
目录,将Hello2.java
移动到test2
目录,再试一次