2011-02-10 111 views
1

鑑於這種.bat文件:編譯和執行java文件批處理文件問題

@ECHO OFF 

echo === Compiling and executing bat file === 


md C:\my_project\dir_prog\class_files 


copy ProgAudioJ.java C:\my_project\dir_prog 


javac -d C:\my_project\dir_prog\class_files ProgAudioJ.java 


java -classpath C:\my_project dir_prog.class_files.ProgAudioJ 

我想知道什麼地方錯了。

它只是不起作用。

我的意思是,它會在目錄中稱爲class_files類文件(這樣的編譯過程是確定),但該程序不能運行......

感謝您的幫助MAX

+2

你有沒有bat文件的輸出?你能發佈ProgAudioJ.java的源代碼嗎? –

+3

如果您遇到需要幫助的問題,請不要停在「它不起作用」。告訴我們它輸出的內容,錯誤信息,預期發生的情況,實際發生的情況等。這適用於您遇到的任何類型的計算機問題。 –

回答

1

我想第一個問題是,你需要指定classpath上的class_files目錄。

第二個問題是您必須指定要運行的類的完全限定名稱。這取決於您在Java源文件中定義的包。

所以這樣的事情應該工作:(我假設你的類在默認的包,即沒有包)

java -classpath c:\my_project\dir_prog\class_files ProgAudioJ 

你能提供源文件的內容是什麼?

+0

感謝您的回覆。我試圖按照你的建議,但不幸的是它不起作用。我沒有在源文件中指定任何軟件包。我可以嗎 ? – MAX

+0

您是否在bat文件或命令行中運行上述命令?你可以嘗試他們嗎?你能發佈ProgAudioJ.java的源代碼嗎?什麼是輸出? –

+0

輸出是一個wav文件播放器和錄音機和木匠..如果我從命令行運行它,我得到這個錯誤:線程「主」java.lang.NoClassDefFoundError異常:ProgAudioJ/jav 引起:java.lang。 ClassNotFoundException:ProgAudioJ.java at java.net.URLClassLoader $ 1.run(未知來源) 程序將退出。 – MAX

0

如果您的代碼和命令是正確的,我會懷疑與javac的異步執行或文件系統有關的延遲。

嘗試添加暫停命令以檢查問題是否是命令執行的快速性,或者問題出在命令中。