2012-05-30 41 views
2

我有兩個類,Parent和Child。對於類的代碼是這樣的:如何在Java中創建「包」?

Parent.class

package test; 
import java.util.*; 

public class Parent { 
    public static void main(String[] args) { 
     Child child = new Child(); 
    } 
} 

Child.class

package test; 
import java.util.*; 

public class Child { 
    public Child() { 
     System.out.println("A Child object has been created"); 
    } 
} 

我把兩個班在一個名爲 「test」 目錄。我可以編譯Child.java沒有任何問題,但我不能編譯父類。它說它找不到兒童班。問題是什麼?

+8

你在哪裏編譯這些_from_?你能提供命令行嗎?這些對我來說很好看,因爲它們是。 –

+0

請參閱http://stackoverflow.com/questions/4800781/how-to-compile-multiple-java-source-files-in-command-line –

+0

CLASSPATH ....着名的類路徑...確保包含測試的文件夾在類路徑中 –

回答

0

我想你在錯誤的地方執行命令。如果你把代碼放在d:/ test /目錄下,你應該在目錄d:/下執行命令 。

因此,如果您將目錄更改爲d:,則可以執行正確的操作。 javac的測試\ Child.java javac的測試\ Parent.java

的Java test.Parent

你會得到你想要的東西..

+0

現在它編譯兩個類沒有任何問題,但當我嘗試「Java測試\父」錯誤的名稱:測試/父! –

+0

它應該是「java test.Parent」。 test.Parent是你父類的名字。 – linuxlsx

+0

謝謝我可以編譯它並使用你給我的指令來運行它。現在的問題是我應該如何設置「路徑」,所以我不需要每次輸入包名稱,我想運行該文件? –

0

做的是包括你生成的子類的東西類路徑,而你編譯父類。

SET CLASSPATH= (the path where your child.class exists);%CLASSPATH%; 

以上需要做的事情,因爲父類是依賴於子類,不能沒有它

一些細節可以在這裏找到編譯:

http://docs.oracle.com/javase/tutorial/getStarted/problems/index.html

+0

可以請你更具體的如何設置PATH? –

+0

不要篡改PATH只是使用CLASSPATH。 'SET CLASSPATH =(你的child.class存在的路徑);%CLASSPATH%;' – MozenRath

+0

當你嘗試學習這些基礎知識時,請記住多個類通常使用像Ant或'Maven'這樣的構建工具進行編譯 – MozenRath

0

假設你的java文件在D:\ test中。你喜歡編譯這個

 D:\>javac test/Child.java 
    D:\>javac test/Parent.java 

這將是確定了你。如果你使用有些IDE,你的類都沒有問題。

+0

我知道IDE會爲我輕鬆實現,但我想了解它的基本原理。謝謝你的回答。 –