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 更新 7 更新到更新 17,当我回到更新 7 时它又可以工作了。似乎在两者之间的某个地方引入了一个新错误。经过反复试验,我想出了这个解决方法,它适用于旧的和新的 javac。

希望有帮助。

于 2013-03-14T12:03:24.830 回答
1

*对 shell 有意义,对编译器没有意义。当你把它放在*引号中时,你将它传递给编译器,不允许 shell 扩展它。您需要引用空格而不引用星号。

但是,最好使用适当的构建工具,例如 ant 或 maven。

于 2012-12-28T02:07:44.900 回答