Java 罐子罐';在工作目录外找不到引用库的类
我在项目中引用了一个外部库(Opencsv) 我将清单文件添加到“src”文件夹中,如下所示: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
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是否正确