我想开发一个显示计算机信息的程序。我发现了一个叫"奥希"的图书馆。当我导入这个库并运行代码时,出现了一个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/jna/Platform
at oshi.SystemInfo.<init>(SystemInfo.java:40)
at Main.main(Main.java:10)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
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)
... 7 more
我想运行这个代码:
SystemInfo si = new SystemInfo();
OperatingSystem os = si.getOperatingSystem();
System.out.println(os);
我做错了什么?
Oshi有一些依赖项,您也需要下载并添加到类路径中。退房https://github.com/dblock/oshi/blob/master/pom.xml
内部检查并下载提到的jar(可能来自maven central)
我是Oshi的主要开发人员之一。正如@Jan所说,你需要一些依赖关系。特别需要Java Native Access(JNA)和一个实现slf4j的日志系统。
如果您使用管理依赖关系的构建软件(强烈建议),从README主页点击"中央存储库"链接将为您提供适当的代码,以放入构建脚本中,还可以让您了解手动安装jar时需要的jar版本。
您必须添加以下库:
jna-5.1.0.jar
jna-platform-5..1.0.jar
slf4j仅使用slf4j-api-1.7.25.jar和slf4j-simple-1.7.25.jar