环境:Windows 7,Java 6.
尝试使用-cp选项编译.java文件。该文件使用当前目录中的单个jar文件ALONG与当前目录中的其他一些jar文件。
javac -cp ./*.jar MyFile.java
不起作用。
javac -cp ./* MyFile.java
不起作用
javac -cp ./MyJar.jar MyFile.java
作品
前两种情况,我得到一个无效的标志错误。有人可以解释这种行为吗?
我检查了它是否存在空格问题,我的完整文件路径中没有任何空格。
答案 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?)