当前目录中有多个jar文件的javac classpath选项导致错误

时间:2014-07-29 21:08:29

标签: java javac

环境:Windows 7,Java 6.

尝试使用-cp选项编译.java文件。该文件使用当前目录中的单个jar文件ALONG与当前目录中的其他一些jar文件。

javac -cp ./*.jar MyFile.java

不起作用。

javac -cp ./* MyFile.java 

不起作用

javac -cp ./MyJar.jar MyFile.java

作品

前两种情况,我得到一个无效的标志错误。有人可以解释这种行为吗?

我检查了它是否存在空格问题,我的完整文件路径中没有任何空格。

2 个答案:

答案 0 :(得分:9)

评论中提供的两个链接的引用来源以及"此问题可能已在此处得到答案:",不能完全解释观察到的行为。

  

javac -cp ./*.jar MyFile.java

无法工作,因为此上下文中的通配符*用法与正常用法不同。这可以从文档中理解。 *始终表示完整文件,而不是部分文件名。

  

javac -cp ./* MyFile.java

应该有效。显然在窗口中使用双引号和/或分号。工作原理:

  

javac -cp" ./*" MyFile.java

     

javac -cp ./*; MyFile.java

     

javac -cp" ./*;" MyFile.java

     

javac -cp *; MyFile.java

     

javac -cp" *" MyFile.java

     

javac -cp" *;" MyFile.java

在文件中没有任何地方提到这个重要的事实。

所以我想在WINDOWS 7 64位,使用java 1.6.0_75使用双引号或在使用WILDCARD时始终是半结构*

答案 1 :(得分:0)

在Windows中使用反斜杠?

javac -cp。\ * MyFile.java

还请注意Broken wildcard expansion for Java7 commandline on Windows(7?)