在类路径中使用通配符调用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,则不需要这样做,以解释第二条命令为何起作用。 奇怪的。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...