Java 罐子罐';在工作目录外找不到引用库的类

Java 罐子罐';在工作目录外找不到引用库的类,java,jar,executable-jar,opencsv,Java,Jar,Executable Jar,Opencsv,我在项目中引用了一个外部库(Opencsv) 我将清单文件添加到“src”文件夹中,如下所示: Manifest-Version: 1.0 Main-Class: DataClean.DataPreprocess Class-path: jars/opencsv.jar “jars”是一个包含“src”文件夹中的opencsv jar文件的文件夹 已编译的主类位于“src”中的“DataClean”文件夹中 创建jar时,我使用: jar cfm PromoPrice_CN.jar Manif

我在项目中引用了一个外部库(Opencsv)

我将清单文件添加到“src”文件夹中,如下所示:

Manifest-Version: 1.0
Main-Class: DataClean.DataPreprocess
Class-path: jars/opencsv.jar
“jars”是一个包含“src”文件夹中的opencsv jar文件的文件夹

已编译的主类位于“src”中的“DataClean”文件夹中

创建jar时,我使用:

jar cfm PromoPrice_CN.jar Manifest.txt *
此命令在“src”文件夹中运行

然后,我创建的JAR只能在这个'src'目录中运行。否则,它给出了例外情况:

Exception in thread "main" java.lang.NoClassDefFoundError: com/opencsv/CSVReader
    at DataClean.DataPreprocess.dataClean(DataPreprocess.java:154)
    at DataClean.DataPreprocess.main(DataPreprocess.java:229)
Caused by: java.lang.ClassNotFoundException: com.opencsv.CSVReader
    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)
    ... 2 more
我用来运行jar的命令是:

java -jar C:\...\src\PromoPrice_CN.jar X Y Z
十、 Y和Z是jar的三个输入参数

请帮帮我,我哪里做错了

仅供参考,由于其他原因,JAR的创建必须在命令行中进行。


Thx

您使用的是哪种java版本?请确保清单文件的最后一行为空,也请尝试“类路径”(大写字母p)@commit-man-tryed…仍然有异常…好吧,您可以尝试调试并自己查找问题。每个类加载器(URLClassLoader的实例)都有ucp字段(即URLClassPath),每个ucp都有URL列表。您可以在这里查看详细信息
sun.misc.URLClassPath#getLoader(int)
。对于每个url,应该创建加载程序并将其放置在lmap(加载程序映射)中。类路径清单条目在这里解析
sun.misc.URLClassPath.JarLoader\getClassPath
。插入断点并检查URL是否正确