javac classpath option with multiple jar files in current directory causing error

六月ゝ 毕业季﹏ 提交于 2019-12-17 20:21:55

问题


Environment: Windows 7, Java 6.

Trying to compile a .java file with -cp option. The file uses a single jar file that's in the current directory ALONG WITH some other jar files in the current directory.

javac -cp ./*.jar MyFile.java

doesn't work.

javac -cp ./* MyFile.java 

doesn't work

javac -cp ./MyJar.jar MyFile.java

works

First two cases, I get a invalid flag error. Can someone explain this behavior?

And I checked if it is spaces issue, there are no spaces anywhere in my full file paths.


回答1:


The quoted sources for the two links provided in the comments as well as in the "This question may already have an answer here:", do not completely explain the observed behavior.

javac -cp ./*.jar MyFile.java

Won't work, because the wildcard * usage in this context differs from normal usage. This can be understood from the documentation. * always represents full file(s) and not partial file names.

javac -cp ./* MyFile.java

Should have worked. Apparently using double quotes and/or a semi-colon in windows. works:

javac -cp "./*" MyFile.java

javac -cp ./*; MyFile.java

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

javac -cp *; MyFile.java

javac -cp "*" MyFile.java

javac -cp "*;" MyFile.java

Nowhere in the documention is this important fact mentioned afaik.

So I guess ON WINDOWS 7 64 bit, with java 1.6.0_75 EITHER USE DOUBLE QUOTES OR ALWAYS A SEMI-COLON WHEN USING WILDCARD *




回答2:


use backslash in windows?

try

javac -cp .\* MyFile.java

also note Broken wildcard expansion for Java7 commandline on Windows(7?)



来源:https://stackoverflow.com/questions/25025018/javac-classpath-option-with-multiple-jar-files-in-current-directory-causing-erro

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!