2015-09-07 49 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> 
相關問題