在类路径中使用通配符调用java失败

问题描述

| 我在当前目录中有一些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,则不需要这样做,以解释第二条命令为何起作用。 奇怪的。