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

时间:2015-09-07 09:41:41

标签: java

我已经实现了一个项目,其中包含位于3个独立文件夹中的文件:

  1. 位于e:\operator.Operator

  2. 的操作员界面
  3. 程序业务taht在e:\project\main.FileProcess

  4. 中有FileProcess类
  5. e:\operators.Plus, Minus, Divide, Multiply

  6. 中实现操作员界面的四个类Plus,Minus,Multiply,Divide

    此三个文件夹具有依赖关系,例如:class PlusMinusDivideMultiply实现Operator接口或类FileProcess import Operator

    我使用命令行来编译这些代码,但我不知道如何做到这一点。当我以简单的方式编译(javac operators/*.javajavac main/FileProcess.java)时,我得到 ClassNotFoundException 或其他错误。

4 个答案:

答案 0 :(得分:0)

您必须同时运行命令

javac operators/*.java main/*.java

答案 1 :(得分:0)

考虑使用Gradle: https://gradle.org/

这是创建项目依赖项的非常方便的方法

答案 2 :(得分:0)

我建议您使用Maven / Ant并通过它导入依赖项。 像:

     <modules>
        <module>Module1</module>
     </modules>
     <properties>
        //Set version of you module
     </properties>
     <dependencies>
         <dependency>
              <groupId>package_name</groupId>
              <artifactId>Artifact_name</artifactId>
              <version>Version you set in properties tag</version>
         </dependency>
     <dependencies>

答案 3 :(得分:0)

尝试此示例以找到错误:

。创建两个文件夹c:\a1\c:\a2\

。在c:\a1\创建A.java文件中:

package a1;
import a2.B;

public class A implements B{

    public void metodoB(){
        System.out.println("HELLO");
    }
}

。在c:\a2\创建B.java文件中:

package a2;

public interface B{
    public void metodoB();
}

。编译类及其接口:

C:\>javac c:\a1\A.java

修改

。在c:\a3\创建C.java文件中:

package a3;

import a1.A;
import a2.B;

public class C{

    public static void main(String [] args){
        A a = new A();
        a.metodoB();

    }
}

。编译Main类:

C:\>javac c:\a3\C.java

。执行程序:

C:\>java a3.C