所以我想用
构建我的maven项目mvn clean package
但是一旦我尝试在目标文件夹中运行我的构建的jar文件,比如
java -jar app-1.0-SNAPSHOT.jar
显示错误:
错误:发生了JNI错误,请检查您的安装和 再次尝试线程中的异常" main" java.lang.NoClassDefFoundError: net / sourceforge / jdatepicker / DateModel at java.lang.Class.getDeclaredMethods0(Native Method)at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)at at java.lang.Class.privateGetMethodRecursive(Class.java:3048)at java.lang.Class.getMethod0(Class.java:3018)at java.lang.Class.getMethod(Class.java:1784)at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 在 sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 引起:java.lang.ClassNotFoundException: net.sourceforge.jdatepicker.DateModel at java.net.URLClassLoader.findClass(URLClassLoader.java:381)at java.lang.ClassLoader.loadClass(ClassLoader.java:424)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:331)at at java.lang.ClassLoader.loadClass(ClassLoader.java:357)... 7更多
Pom DataPicker依赖:
<!-- https://mvnrepository.com/artifact/net.sourceforge.jdatepicker/jdatepicker -->
<dependency>
<groupId>net.sourceforge.jdatepicker</groupId>
<artifactId>jdatepicker</artifactId>
<version>1.3.2</version>
</dependency>
为什么即使添加了依赖项,也会发生异常?
答案 0 :(得分:1)
您需要通过将它们添加到类路径来确保所有依赖项都可用于Java运行时。在pom中添加依赖项仅有助于编译和打包项目。
答案 1 :(得分:1)
尝试删除并重新下载本地maven仓库中的jar。
如果您正在使用想法,请尝试在maven设置中更新本地存储。
答案 2 :(得分:0)
尝试添加maven插件,以便使用jar文件复制所有依赖项,并且不必再查看了。通过添加:
来做到这一点<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals><goal>copy-dependencies</goal></goals>
</execution>
</executions>
</plugin>