2012-12-28 76 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。

希望有所帮助。