0

Java ファイルをコンパイルして実行するアプリケーションを作成しましたが、完全に問題なく動作していました。

コンパイルして実行する 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

これについていくつかのスレッドを読みましたが、解決策がわかりませんでした。誰にも手がかりがありますか?

ありがとうございました!

4

2 に答える 2

5

パスのみを引用してみて、引用符のに *.java を追加してください。例えば:

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

テスト環境に同じパターンのスクリプトがありましたが、今日は機能しなくなりました。いくつかの調査の後、唯一の変更点は、JDK7 update 7 から update 17 に更新したことであり、update 7 に戻ると再び機能することがわかりました。その間のどこかに導入された新しいバグがあるようです。試行錯誤の末、この回避策を思いつきました。これは、古い javac と新しい javac の両方で機能します。

それが役立つことを願っています。

于 2013-03-14T12:03:24.830 に答える
1

*コンパイラではなく、シェルにとって意味があります。を*引用符で囲むと、それがコンパイラに渡され、シェルがそれを展開することはできません。星を引用せずにスペースを引用する必要があります。

ただし、antやmavenなどの適切なビルドツールを使用する方がはるかに優れています。

于 2012-12-28T02:07:44.900 に答える