我不确定我是否在这里使用正确的java术语,但这是我想要做的。我基本上有一些代码在一个目录中工作。我想重组它们。一些以前的线程建议包和导入可能是答案。有一些遗漏的细节,所以我不太明白这个过程是如何工作的。
这是我的目录hiearchy。
/ MYDIR / myProject的
/ MYDIR / myProject的/共同
/ MYDIR / myProject的/特征1
feature1需要共同的东西。
1)我是否共同编译代码并将其放在jar文件中,还是有其他机制来构建软件包?
2)我需要添加到实际的* .java文件中以表明它是一个包吗?
3)我需要在哪里放置这个jar文件?
4)在feature1文件中,如何导入公共代码?例如,
导入myDir.myProject.common.JARFILE; //这将有效还是必须指定
//这些实际的组件
答案 0 :(得分:1)
您可以一次构建所有包 - 它们不必位于单独的jar文件中。在您的示例中,有三个包,每个包对应于您拥有源代码的每个目录。在java文件中,您应该添加一行来表明它是一个包。
package myDir.myProject.common;
导入时,您应该为要导入的每个类添加一行。像这样:
import myDir.myProject.common.Class1; import myDir.myProject.common.Class2;
您也可以使用.*
来表示包中的所有类,但如果可以的话,最好列出特定的类。
编译时,应该从所有软件包顶部的根目录编译。这样,根目录将可以访问所有源代码文件。例如,如果您正在寻找myDir.myProject.common.Class1
,编译器自然会在myDir/myProject/common/
中查找Class1
。请注意,这是一个相对目录。否则,如果包装已经在罐子里震动了,它会在那里找到它。如果你有一个计划在多个项目中使用的软件包,那么它就会受到攻击并引用这种方式可以帮助实现可移植性和版本控制。
我的另一个建议是你使用像Eclipse这样的IDE来为你处理这些事情。当我在Eclipse中设置项目时,我添加了一个源目录,创建了包,然后在这些包中创建了类。它为我处理代码中的所有包和import语句。
答案 1 :(得分:0)
您可以创建所有必需文件的jar文件,然后将它们添加到类路径中。
或者您可以使用
import myDir.myProject.common.*;