【问题标题】:How to compile packages that has dependencies?如何编译具有依赖关系的包?
【发布时间】:2015-09-09 18:02:05
【问题描述】:

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

  1. 位于e:\operator.Operator的操作员界面

  2. 程序的业务在e:\project\main.FileProcess有FileProcess类

  3. e:\operators.Plus, Minus, Divide, Multiply中实现Operator接口的Plus、Minus、Multiply、Divide四个类

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

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

【问题讨论】:

  • 我想编译这些类,但因为它们在单独的文件夹中,我无法编译它们

标签: java


【解决方案1】:

试试这个例子找出你的错误:

。创建两个文件夹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

【讨论】:

  • 对于两个文件夹它可以工作,但我有三个文件夹,其中 2 个(操作员和项目)使用操作员界面
  • 嗨,你试过我的例子吗?
  • @lametaweb 嗨,是的,我试试你的例子,我知道问题出在哪里。我应该从所有文件夹对 jvm 和编译器可见的目录运行我的程序。非常感谢
【解决方案2】:

您必须同时运行这些命令

javac operators/*.java main/*.java

【讨论】:

  • 首先我应该在我喜欢的操作文件夹中编译四个类:javac operator/*.java operator/Operator.java 然后我想编译我喜欢的 FileProcess 类:javac main/* .java operator/Operator.java 但我得到 NullPointerException 错误说我找不到 operator/Operator
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    我会推荐你​​使用 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>
    

    【讨论】:

      猜你喜欢
      • 2012-08-01
      • 1970-01-01
      • 2023-04-06
      • 2015-04-03
      • 1970-01-01
      • 2020-02-14
      • 2017-11-10
      • 1970-01-01
      • 2014-09-06
      相关资源
      最近更新 更多