gpt4 book ai didi

java - 使用外部和本地库运行 jar 文件

转载 作者:行者123 更新时间:2023-12-01 12:42:44 24 4
gpt4 key购买 nike

我尝试用java编写一个程序,我希望每个人都可以运行该程序,而无需在系统中进行任何设置。我的程序使用RXTX-2.1.7库。我将 rxtx-2.1.7.jar 添加到我的程序中,但没有将其添加到我的 jre 中。我没有在环境变量中设置路径。因此我使用 NetBeans IDE 8.0 构建我的项目。 IDE 生成 jar 文件并在同一文件夹中复制 rxtx 库。然后我用这个命令 java -jar MainFrame.jar 创建了一个批处理文件。但是当我运行批处理文件时,我看到这个错误:

java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1857)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1119)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at pkg.MainFrame.process(MainFrame.java:82)
at pkg.MainFrame.access$100(MainFrame.java:12)
at pkg.MainFrame$1.run(MainFrame.java:71)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

我应该做什么?

最佳答案

您似乎已经构建了使用 rxtx-2.1.7.jar 的 MainFrame.jar,但尚未将 rxtx-2.1.7.jar 与 MainFrame.jar 捆绑在一起。因此,在运行时,由于 MainFrame.jar 不知道在哪里查找 rxtx-2.1.7.jar 的类,因此会出现 UnsatisfiedLinkError。

您需要创建 list 文件(MANIFEST.MF)并将其捆绑到您的MainFrame.jar。在 list 文件中,添加

Class-Path: rxtx-2.1.7.jar

并将 rxtx-2.1.7.jar 放在与 MainFrame.jar 相同的文件夹中。

或者您可以在命令行中使用“-cp rxtx-2.1.7.jar”选项将类路径添加到您的 jar 中。希望有帮助。

关于java - 使用外部和本地库运行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com