如果引用路径,则“找不到javac:文件”

时间:2012-12-28 01:18:20

标签: wildcard javac

我构建了一个编译和运行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

我已经阅读了一些有关此问题的帖子,但我无法找到解决方案。有人有线索吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

尝试引用路径并在引用后添加* .java 。例如:

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

我的测试环境中有一个脚本,它具有相同的模式,今天停止了工作。经过一些研究,我发现唯一的变化是我已经从JDK7更新7更新到更新17,当我回到更新7时,它再次工作。似乎有一个新的错误介绍介于两者之间。经过一些试验和错误后,我想出了这个解决方法,适用于旧的和新的javac。

希望有所帮助。

答案 1 :(得分:1)

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

但是,使用正确的构建工具(如ant或maven)会好得多。