2015-09-07 70 views
0

我已经实现包含文件的项目,位于3个单独的文件夹:如何编译具有依赖关系的包?

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

  2. 业务taht在e:\project\main.FileProcess

  3. FileProcess类节目四类Plus,Negus,Multiply,Divider实现Operator Interface在e:\operators.Plus, Minus, Divide, Multiply

这种三个文件夹例如具有依赖性:类PlusMinusDivideMultiply实现Operator接口或类FileProcess进口Operator

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

+0

我想编译这个类,但becouse他们是在单独的文件夹,我不能编译它们 – soha

回答

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

+0

对于两个文件夹的工作原理,但我有三个文件夹,其中2个(操作员和项目)使用操作员界面 – soha

+0

我刚刚编辑我的答案,请看看它。 – lametaweb

+0

嗨,你试过我的例子吗? – lametaweb

0

您必须在同一时间运行的命令

javac operators/*.java main/*.java

+0

首先我应该编译四类在运营商的文件夹我不喜欢这样:javac的运营商/ *。 java运算符/ Operator.java然后我想编译FileProcess类我喜欢这样做:javac main/*。java运算符/ Operator.java但我得到NullPointerException错误说我找不到运算符/ Operator – soha

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>