编译并运行这个java程序
如何编译和运行以下程序:
测试1。爪哇:
package A;
public class Test1
{
public int a = 1;
}
测试2。爪哇:
package B;
import A.*;
public class Test2
{
public static void main(String [] args)
{
Test1 obj = new Test1();
System.out.println(obj.a);
}
}
我是个新手。
如果我使用javac *.java
编译
并手动创建dira,复制Test1。类并手动创建dir B并复制Test2。类,然后运行java B.Test2
它可以工作。我肯定这不是正确的做法。请建议
# 1 楼答案
你应该保持冷静。目录结构中的java文件与包结构匹配
所以测试1。java应该放在目录A中 所以测试2。java应该放在目录B中
# 2 楼答案
您需要将java文件保存在正确的目录结构中:
通常只调用主类上的
javac
就足够了,因为所有依赖项都将自动处理。在我说javac B/Test2.java
之后,它看起来是这样的:我可以用
java B.Test2
运行这个程序如果仅仅在主类上运行
javac
是不够的,那么您可能需要一个构建系统# 3 楼答案
编译的方式没有问题,只是很麻烦,但肯定没有错
也就是说,创建一个src目录来存储您的。java文件,使目录结构与类的包结构保持一致。在本例中,您将有src目录,其中有目录A和目录B。java和内部B放置Test2。爪哇
然后:
为什么是Test2。JAVA因为它依赖于A,所以编译器足够聪明,可以首先编译A/Test1。java,然后是B/Test2。JAVA在这一点上,你有每一个。在A和B中分类文件
要运行它,请执行以下操作:
# 4 楼答案
这不是对您问题的直接回答,但您可能希望开始考虑使用IDE(其他人建议使用ant)。如果您刚刚起步,我会推荐jcreator,如果您想要一些好东西,我会推荐Eclipse
# 5 楼答案
编译器将创建名为A和B的目录,并放置。类中的文件
您不需要手动将类文件复制到它们的包目录中,如果这样做,它可能无法工作