Java 如何编译具有依赖关系的包?

Java 如何编译具有依赖关系的包?,java,Java,我实施了一个项目,其中包含位于3个单独文件夹中的文件: 位于e:\Operator.Operator中的操作员界面 taht程序的业务在e:\project\main.FileProcess 四个类加、减、乘、除实现了e:\operators.Plus、减号、除、乘中的运算符接口 这三个文件夹具有相关性,例如:类加号,减号,除法,乘法实现运算符接口或类文件过程导入运算符 我使用命令行来编译这些代码,但我不知道怎么做。当我以简单的方式编译(javac operators/*.java或javac

我实施了一个项目,其中包含位于3个单独文件夹中的文件:

  • 位于
    e:\Operator.Operator中的操作员界面

  • taht程序的业务在
    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\
    create
    A.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\
    create
    B.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\
    create
    c.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和编译器可以看到所有文件夹的目录下运行我的程序。非常感谢