我有一個關於javac和Java包的快速問題。如何在軟件包中編譯類,稍後用「java程序」(不帶軟件包名稱)執行它們?
我有一個簡單的程序(我們就叫它Program.java),這是目前在以下目錄:
- myRepository/myProgram
在Program.java和其他的.java myRepository/myProgram目錄中的文件,我已聲明package myProgram.*
並且還包含import myProgram.*;
。
所以當我輸入javac myProgram/Program.java
,它編譯得很好,如果我輸入java myProgram/Program
,它運行良好。
但是,我試圖讓目錄中生成.class文件,而不是myRepository/myProgram
,這是源文件所在的位置。我試圖javac myProgram/Program.java -d ..
產生在myRepository目錄下的.class文件,但是當我嘗試「Java程序」,它給了我下面的錯誤:
Exception in thread "main" java.lang.NoClassDefFoundError: Program (wrong name: myProgram/Program).
有什麼辦法辦法,我能得到的.class文件現身在主目錄(myRepository)中,而不是源代碼的位置(myRepository/myProgram),並且能夠在myRepository中執行java Program
?
那麼有沒有辦法讓這個我可以只輸入「JAVA程序」,並使其從主目錄中工作時,源代碼是不同的目錄? – FlamesPuck12 2011-02-06 02:40:59
除了編寫一個新的`java`實現,沒有。您可以考慮使用IDE,您只需按下按鈕(或點擊熱鍵)即可編譯並運行您的代碼。 – 2011-02-06 02:46:34