Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers
主要還是NoClassDefFoundError這個錯誤,NoClassDefFoundError錯誤的發生,是因為Java虛拟機在編譯時能找到合适的類,而在運作時不能找到合适的類導緻的錯誤。與ClassNotFoundException的不同在于,ClassNotFoundException發生在編譯時。很多Java開發者很容易在這裡把這兩個錯誤搞混。
正常情況出現這種問題都是版本不一緻的問題,畢竟依賴包直接添加會使用預設的依賴版本
在pom.xml檔案中找到這兩個依賴的版本
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
</dependency>
看到版本是
但是我們本地maven倉庫中使用的确實4.5.2版本,版本不一緻,缺少com/sun/jna/platform/win32/VersionHelpers這個類則報的錯
這時直接指定版本到pom.xml檔案再運作就沒問題了
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.11.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>5.11.0</version>
</dependency>