Java 如何编译具有依赖关系的包?
我实施了一个项目,其中包含位于3个单独文件夹中的文件:Java 如何编译具有依赖关系的包?,java,Java,我实施了一个项目,其中包含位于3个单独文件夹中的文件: 位于e:\Operator.Operator中的操作员界面 taht程序的业务在e:\project\main.FileProcess 四个类加、减、乘、除实现了e:\operators.Plus、减号、除、乘中的运算符接口 这三个文件夹具有相关性,例如:类加号,减号,除法,乘法实现运算符接口或类文件过程导入运算符 我使用命令行来编译这些代码,但我不知道怎么做。当我以简单的方式编译(javac operators/*.java或javac
e:\Operator.Operator中的操作员界面
e:\project\main.FileProcess
e:\operators.Plus、减号、除、乘中的运算符接口
加号
,减号
,除法
,乘法
实现运算符
接口或类文件过程
导入运算符
我使用命令行来编译这些代码,但我不知道怎么做。当我以简单的方式编译(
javac operators/*.java
或javac main/FileProcess.java
)时,会出现ClassNotFoundException或其他错误。您必须同时运行这些命令
javac operators/*.java main/*.java
考虑使用Gradle:
这是创建项目依赖项的非常方便的方法我建议您使用Maven/Ant并通过它导入依赖项。 比如:
模块1
//设置模块的版本
包裹名称
工件名称
在属性标签中设置的版本
尝试此示例以查找错误:
。创建两个文件夹c:\a1\
和c:\a2\
。在c:\a1\
createA.java
文件中:
package a1;
import a2.B;
public class A implements B{
public void metodoB(){
System.out.println("HELLO");
}
}
package a2;
public interface B{
public void metodoB();
}
package a3;
import a1.A;
import a2.B;
public class C{
public static void main(String [] args){
A a = new A();
a.metodoB();
}
}
。在c:\a2\
createB.java
文件中:
package a1;
import a2.B;
public class A implements B{
public void metodoB(){
System.out.println("HELLO");
}
}
package a2;
public interface B{
public void metodoB();
}
package a3;
import a1.A;
import a2.B;
public class C{
public static void main(String [] args){
A a = new A();
a.metodoB();
}
}
。编译类及其接口:
C:\>javac c:\a1\A.java
编辑:
。在c:\a3\
createc.java
文件中:
package a1;
import a2.B;
public class A implements B{
public void metodoB(){
System.out.println("HELLO");
}
}
package a2;
public interface B{
public void metodoB();
}
package a3;
import a1.A;
import a2.B;
public class C{
public static void main(String [] args){
A a = new A();
a.metodoB();
}
}
。编译主类:
C:\>javac:\a3\C.java
。执行程序:
C:\>java a3.C
我想编译这些类,但因为它们在单独的文件夹中,我无法编译它们。首先,我应该在operators文件夹中编译四个类,我喜欢这样做:javac operators/*.java operator/operator.java然后我想编译FileProcess类,我喜欢这样做:javac main/*.java operator/operator.javaNullPointerException错误表示我找不到operator/operator两个文件夹它可以工作,但我有三个文件夹,其中两个(operators和project)使用operator Interface Hi,你试过我的例子吗?@lametaweb Hi,是的,我尝试了你们的例子,我知道问题出在哪里。我应该在jvm和编译器可以看到所有文件夹的目录下运行我的程序。非常感谢