我正在尝试使用 SIGAR API 收集系统信息。在我的库中包含 sigar.jar 后,Netbeans 给出了sigar-amd64-winnt.dll
未找到的错误。将该文件添加到库后,它运行良好。
现在我需要创建一个可执行的 jar,所以我使用 NetBeans 来构建我的项目。Netbeans 自动删除了 .dll 文件,在我手动将其复制回 dist 文件夹后,我的程序就可以工作了。我现在正在尝试使用 Launch4j 创建一个 exe 文件。当我运行它时,抛出一个 java 异常,可能是因为 Launch4j 删除了 .dll 文件。
我如何确保 Launch4j 将其包含在 exe 文件中?
我浏览了许多关于 SO 的答案,但无法解决我的问题。在下面提到了一些-
sigar-amd64-winnt.dll ...无法引用它或将其与 .jar 捆绑
任何帮助,将不胜感激..
编辑
当我测试运行 exe 包装器时,Launch4j 在其日志中给出以下异常 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/hyperic/sigar/SigarException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.hyperic.sigar.SigarException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more