2012-12-28 116 views
0

我構建的應用程序進行編譯和運行Java文件,它運行完全正常。「的javac:找不到文件」如果路徑是引用

由於是用戶選擇要編譯和執行的java文件的路徑,我引用路徑,以便它可以包含空格和特殊字符。就像這樣:

javac "C:\test project\*.java" 

現在,我在另一臺計算機上嘗試了,現在我有這個錯誤:

javac: file not found: C:\test project\*.java 
Usage: javac <options> <source files> 
use -help for a list of possible options 

如果我刪除的報價並沒有在路徑中沒有空格或特殊字符它的工作原理,但上面的例子中,包含一個空格,我得到這個錯誤:

javac: invalid flag: C:\test 
Usage: javac <options> <source files> 
use -help for a list of possible options 

我讀過一些有關此線程,但我不能想出解決方案。任何人都有線索?

謝謝!

回答

1

*對shell有意義,而不是編譯器。當您將*放在引號中時,您將它傳遞給編譯器,而不允許shell將其展開。你需要引用空格而不用引用星號。

但是,使用適當的構建工具(如ant或maven)會更好。

3

嘗試引用只有的路徑並在之後加上* .java 引用。例如:

javac "C:\test project"\*.java 

我在我的測試env中有一個腳本,它有相同的模式,今天停止工作。經過一番研究後,我發現唯一的變化是我已經從JDK7更新7更新到了更新17,當我回到更新7時,它再次運行。似乎有一個新的bug介於兩者之間。經過一些試驗和錯誤後,我想出了這個解決方法,它適用於舊的和新的javac。

希望有所幫助。