天天看點

oshi系統參數庫使用異常

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>