axet/desktop:线程中的异常;“主要”;java.lang.NoClassDefFoundError:com/sun/jna/Platform

axet/desktop:线程中的异常;“主要”;java.lang.NoClassDefFoundError:com/sun/jna/Platform,java,maven,noclassdeffounderror,Java,Maven,Noclassdeffounderror,我正在从存储库构建项目。我正在尝试运行DesktopTest类。我这样做: $ mvn package $ cd target $ java -cp ./desktop-2.3.3.jar:.:test-classes/ com.github.axet.desktop.DesktopTest Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform at com.github.a

我正在从存储库构建项目。我正在尝试运行DesktopTest类。我这样做:

$ mvn package
$ cd target
$ java -cp ./desktop-2.3.3.jar:.:test-classes/ com.github.axet.desktop.DesktopTest
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
        at com.github.axet.desktop.Desktop.getDesktopFolders(Desktop.java:53)
        at com.github.axet.desktop.Desktop.getHomeFolder(Desktop.java:32)
        at com.github.axet.desktop.DesktopTest.main(DesktopTest.java:10)
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform
        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 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我做错了什么

Java版本:

$ java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

您尚未下载包的依赖项。它们列在
pom.xml
文件中。但您不必担心手动操作

不要简单地使用
mvn包
,您应该执行:

$ mvn clean dependency:copy-dependencies package
这将把所有需要的jar复制到
target/dependency
目录中。将该目录添加到类路径中,它应该可以工作,例如

$ java -cp ./desktop-2.3.3.jar:.:test-classes/:dependency/* com.github.axet.desktop.DesktopTest

您尚未下载包的依赖项。它们列在
pom.xml
文件中。但您不必担心手动操作

不要简单地使用
mvn包
,您应该执行:

$ mvn clean dependency:copy-dependencies package
这将把所有需要的jar复制到
target/dependency
目录中。将该目录添加到类路径中,它应该可以工作,例如

$ java -cp ./desktop-2.3.3.jar:.:test-classes/:dependency/* com.github.axet.desktop.DesktopTest

问题是您显式地指定了类路径,并且排除了maven包含的所有依赖项的位置。(手动解决JNA jar问题后,在获得所有依赖项之前,将出现另一个NoClassDefFoundError。)Maven为您管理所有这些依赖项。问题在于您显式指定了类路径,并且排除了Maven包含的所有依赖项的位置。(一旦手动解决了JNA jar问题,在获得所有依赖项之前,您将遇到另一个NoClassDefFoundError。)Maven为您管理所有这些依赖项。为什么要否决?请评论,以便我可以改进我的答案。(除非你是先前为报复而投否决票的人。)为什么投否决票?请评论,以便我可以改进我的答案。(除非你是先前的回答者,为了报复而投了否决票。)