导入库Oshi

时间:2015-12-03 08:30:01

标签: java

我想开发一个显示计算机信息的程序。 我找到了一个名为"Oshi"的库。当我导入这个库并运行我的代码时,有一个例外:

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);

我做错了什么?

3 个答案:

答案 0 :(得分:2)

Oshi还有一些您需要下载并添加到类路径的依赖项。查看 https://github.com/dblock/oshi/blob/master/pom.xml

内部检查并下载提到的罐子(可能来自maven中心)

答案 1 :(得分:2)

我是Oshi的主要开发者之一。正如@Jan所说,你需要一些依赖。具体而言,您需要Java Native Access (JNA)和一个实现slf4j的日志系统。

如果您使用构建软件来管理依赖项(强烈推荐),请单击&#34; Central Repository&#34;来自主README页面的链接将为您提供适当的代码以放入您的构建脚本中,并且还可以让您了解在手动安装它们时需要哪些版本的jar。

答案 2 :(得分:0)

您必须添加以下库:
jna-5.1.0.jar
jna-platform-5.1.0.jar
slf4j仅使用 slf4j-api-1.7.25.jar slf4j-simple-1.7.25.jar