java manifest classpath与-classpath

ed_*_*ame 2 java jar classpath

我试图找出一个与可执行jar文件有关的奇怪问题:xyz.jar在清单文件中有一个类路径/并且依赖于abc.jar库.

不幸的是,xyz.jar中的清单类路径不正确.为了避免灾难,我正在更新要使用的执行命令:java -classpath path/abc.jar:etc而不是java -jar

问题是xyz.jar故障,除非abc.jar不在类路径上.当删除abc.jar时,程序正确执行,并且不会抛出任何异常.为什么?xyz.jar必须从其他地方拿起abc.jar.xyz.jar调用abc.jar中的方法.

-classpath应覆盖任何$ CLASSPATH设置.即使使用-classpath,java仍然可以查看清单类路径吗?

use*_*421 6

如果指定-jar,则仅使用清单中的类路径.所有其他人都被忽略了 如果需要重新指定类路径,请不要使用-jar.