2009-11-04 232 views
1

我有一堆java文件,我試圖編譯它們時運行下面的代碼。如何編譯java代碼?

"\Program Files\Java\jdk1.6.0_16\bin\javac" Main.java 

而我正在被顯示此錯誤消息

Main.java:3: package colourtiler.patternsdoes not exist 
import colourtiler.patterns.draw; 

它isreferring到位於文件夾patters/PatternColour.java的代碼,我怎麼能得到它包含這個文件?

感謝

+1

添加 「\ Program Files文件\的Java \ jdk1.6.0_16 \ BIN \」 到%PATH%環境變量,以便只需輸入「javac」即可在任何地方執行javac。 – BalusC 2009-11-04 14:28:03

回答

0

我需要查看文件信息,確保客戶,但它聽起來像它應該是在colourtiler /模式。

0

首先需要編譯patters/PatternColour.java然後添加合成類位置到類路徑編譯Main.java

6

您需要包括其在使用javac/Java的-cp-classpath參數路徑時。例如。

javac -cp .;c:/path/to/colourtiler/patterns/draw Main.java 

其中c:/path/to/colourtiler/patterns/draw指向依賴關係類的包根目錄。如果你有更多,那麼你需要用分號分隔它。如果路徑中有空格,則需要引用單個路徑。或者,您也可以將其打包到JAR文件中(或使用已打包的文件),並將完整的文件路徑放到類路徑中的JAR文件中。

如果收集和鍵入類路徑感到厭倦,請考慮使用批處理/ shell文件。

祝你好運。

3

使用-classpath(又名-cp)或-sourcepath參數來設置基源位置。使用-classpath參數指定二進制依賴項(jar文件或base .class文件目錄)。使用-d參數指定輸出目錄。

需要注意的一件事是名稱空間(包)必須匹配目錄結構。

C:\temp>dir /B /S 
C:\temp\bin 
C:\temp\foo 
C:\temp\src 
C:\temp\src\foo 
C:\temp\src\foo\Bar.java 
C:\temp\src\foo\Baz.java 

C:\temp>type src\foo\Bar.java 
package foo; 
public class Bar extends Baz {} 

C:\temp>javac -cp .\src -d .\bin src\foo\Bar.java 

C:\temp>dir /B /S 
C:\temp\bin 
C:\temp\foo 
C:\temp\src 
C:\temp\bin\foo 
C:\temp\bin\foo\Bar.class 
C:\temp\bin\foo\Baz.class 
C:\temp\src\foo 
C:\temp\src\foo\Bar.java 
C:\temp\src\foo\Baz.java 

類文件中聲明package foo;必須在目錄foo。聲明package foo.foo;的類文件必須位於目錄foo\foo中,依此類推。

請參閱javac的文檔。有關更廣泛的classpath文檔,請參見here

0

通過安裝Eclipse並將包含類的文件夾配置爲Eclipse項目(使用導入功能),您將獲得很多次。

這將避免你作爲參數傳遞所需的JAR庫,輸出文件夾,...