2014-04-02 84 views
0

我有一個目錄pj,它擁有兩個目錄,dirATests內。 Tests有一個文件,Test.java(PJ /測試/ Test.java),即從File.java(PJ/DIRA/File.java)在dirA進口。我如何指定這樣的導入?我在Test.java裏面試過import dirA.*但是失敗了。 dirA是一個包。從不同的目錄中導入Java中的目錄

pjTests不是包(雖然我可以讓他們成爲如有必要)。

在File.java,聲明如下:

package dirA; 
import list.*; 

在Test.java,是類的頭前的語句如下

import pj.dirA.File; 

當我做

javac Test.java 

從內Tests,它失敗。在你的Test.java

package pj.dirA; 

這:

+0

請提一下File.java中聲明的包路徑是什麼?如果你提到包pj.dirA.File.java,那麼你需要在dirA中聲明import pj。*或pj.dirA.File – Murthy

+1

import pj.dirA.File;在Test.java裏面 – Karthigeyan

+0

那仍​​然失敗。 –

回答

2

在File.java添加此

package pj.Tests; 

import pj.dirA.File; 

然後做的javac從包含您的PJ文件夾中的文件夾。

注:我已經解釋瞭如何改變當前的設置工作。與目錄對應的軟件包名稱應該全部爲小寫。

在Java中,沒有從任何地方進口的目錄,你只能導入包。例如,如果您將其與C/C++進行比較,則不同。

+0

所以測試必須是一個包?也就是說,在另一個從另一個目錄導入到目錄中的文件的另一個文件中,導入到的文件必須位於目錄內? –

+1

@GeorgeNewton在java中,東西不會被導入*內*任何文件。這與C/C++不同。您只能使用導入語句來聲明您想要使用某些軟件包名稱空間。實際上,包命名空間也對應於目錄,這可能會令人困惑。 – eis

+0

是的,應該使用軟件包。它也可以*指定沒有包名稱的根包中的類,但不建議這樣做,它有幾個缺點。 – eis