2016-02-13 160 views
0

我的主文件夾是ABC裏面有2個文件夾命名爲classes和src,裏面src是2個文件夾命名爲objectFile和testFile,裏面objectFile是ABC.java,而testFile裏面是TestABC.java。(裏面類是相同的,但替代的.class)現在ABC包含Java錯誤包不存在

package objectFile; 
public class ABC 
private int something; 

而TestABC.java包含

package testFile; 
import objectFile.ABC; 

public class TestABC 

錯誤TestABC.java:2說:錯誤:包objectFile不存在

import objectFile.ABC;

+0

這應該工作。你如何編寫你的課程?你使用的IDE(如NetBeans或eclipse)?嘗試清理你的項目(刪除_.class_文件),並重新編譯(編譯)它。 –

+0

不使用CMD(必需),試圖清理它們,但仍然沒有工作 – WaterMokou

回答

1

您是不是指定sourcepath?這告訴編譯器在哪裏找到它需要導入的類。

javac -sourcepath src -d classes src\testFile\TestABC.java 

注意,這個編譯不僅僅是TestABC.java,但ABC.java以及(因爲你import語句)。

然後,您可以把班級到歸檔使用jar命令:

jar cfe myJavaArchive.jar testFile/TestABC -C classes . 

這將Ç reate新的JAR與˚F ilename myJavaArchive.jarË ntrypoint testFile/TestABC目錄中的所有文件製成。

因爲它是入口點,TestABC必須有一個main方法,例如,

package testFile; 

import objectFile.ABC; 

public class TestABC { 

    public static void main(String[] args) { 
     ABC abc1 = new ABC(1); 
     ABC abc2 = new ABC(2); 

     System.out.println("abc1.i is " + abc1.getI()); 
     System.out.println("abc2.i is " + abc2.getI()); 
    } 
} 

package objectFile; 

public class ABC { 

    private int i; 

    public ABC(int i) { 
     this.i = i; 
    } 

    public int getI() { 
     return i; 
    } 
} 

然後你可以使用java -jar命令執行代碼:

java -jar myJavaArchive.jar 
+0

我照你說的那樣做了,它工作我編譯成類,但是當我運行jar文件,它說找不到或加載時出現問題主類 – WaterMokou

+0

我已經添加了關於如何在創建jar時指定入口點的說明。 –

相關問題