问题描述
|
我在当前目录中有一些jar,所有的jar都需要放在类路径中,因此我想对类路径使用通配符约定。命令行是:
java.exe -classpath * org.python.util.jython args
但是我得到这个错误
Exception in thread \"main\" java.lang.NoClassDefFoundError: G:/repo/builds/jars/edu_mines_jtk/jar
Caused by: java.lang.classNotFoundException: G:.repo.builds.jars.edu_mines_jtk.jar
at java.net.urlclassloader$1.run(UnkNown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.urlclassloader.findClass(UnkNown Source)
at java.lang.classLoader.loadClass(UnkNown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(UnkNown Source)
at java.lang.classLoader.loadClass(UnkNown Source)
Could not find the main class: G:/repo/builds/jars/edu_mines_jtk.jar. Program will exit.
如果我手动展开通配符,
java.exe -classpath edu_mines_jtk.jar;ij.jar;jython.jar;more-jars org.python.util.jython [args]
然后它按预期工作。
我的通配符怎么了?
适用于Win7 64位的JRE 1.6.25
解决方法
我发现了,在Windows下,必须在通配符classpath周围加上引号。
但是,如果您明确指定jar,则不需要这样做,以解释第二条命令为何起作用。
奇怪的。