Java jar库位于项目jar中时的类路径

Java jar库位于项目jar中时的类路径,java,classpath,Java,Classpath,我的主prj.jar中打包了log4j jarprj.jar内容: 我使用脚本中的命令运行java程序: java -cp ".:/opt/myprj/prj.jar" com.aaa.webSrv.meRun 看起来程序找不到log4jjars: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager 为什么以及如何修复它 UPD 我的jar由Eclips

我的主
prj.jar
中打包了log4j jar<代码>prj.jar内容:

我使用脚本中的命令运行java程序:

java -cp ".:/opt/myprj/prj.jar" com.aaa.webSrv.meRun
看起来程序找不到
log4j
jars:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager
为什么以及如何修复它

UPD 我的jar由Eclipse清单创建,如下所示:

Manifest-Version: 1.0
Rsrc-Class-Path: ./ log4j-api-2.6.1.jar log4j-core-2.6.1.jar
Class-Path: .
Rsrc-Main-Class: com.aaa.webSrv.meRun
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader

告诉系统关于
log4j
jar是否足够?

您也必须在类路径中指定log4j jar。log4j.jar文件需要在prj.jar外部,而不是内部。但是jar文件包含描述log4j jar位置的清单。我已经用清单更新了问题正文。