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

问题描述 投票:6回答:3

环境:Windows 7,Java 6。

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

javac -cp ./*.jar MyFile.java

不起作用。

javac -cp ./* MyFile.java 

无效

javac -cp ./MyJar.jar MyFile.java

作品

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

而且我检查是否是空格问题,完整文件路径中的任何地方都没有空格。

java javac
3个回答
11
投票

在注释以及“此问题可能已经在这里有了答案”中提供的两个链接的引用来源,请不要完全解释观察到的行为。

javac -cp ./*.jar MyFile.java

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

javac -cp ./* MyFile.java

应该可以。显然在Windows中使用双引号和/或分号。作品:

javac -cp“ ./*” MyFile.java

javac -cp ./*; MyFile.java

javac -cp“ ./*;” MyFile.java

javac -cp *; MyFile.java

javac -cp“ *” MyFile.java

javac -cp“ *;” MyFile.java

在记录中没有任何地方提到afaik这个重要事实。

所以我猜想在Java 1.6.0_75的WINDOWS 7 64位上,无论使用双行还是在使用WILDCARD时总是使用半冒号*


0
投票

在Windows中使用反斜线吗?

尝试

javac -cp。\ * MyFile.java

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


0
投票

旧文章,但以下详细信息认为有帮助,您可以通过用;分隔来指定jar文件。在Windows和Unix中:

例如:(windows)

javac -cp first.jar;second.jar;third.jar YourClass.java

(unix)

javac -cp first.jar:second.jar:third.jar YourClass.java

来源:https://gullele.com/pass-all-the-jars-in-classpath-when-compiling-java/

© www.soinside.com 2019 - 2024. All rights reserved.