有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java小程序中动态加载本机库

我正在尝试编写一个Java小程序,它将从用户的串行端口读取数据。为此,我将Java Comm APIRXTX library结合使用。我已经成功地通过本地Java应用程序读取数据,但在小程序中似乎无法做到这一点。问题是RXTX库是本机库,我还没有找到在Java小程序中加载该库的方法。我发现了两篇有趣的文章(使用JNI in Applets引用this article),但这两篇文章都已经有10年的历史了,我想知道是否有更新的解决方案。或者,如果你能提出一个替代方案,我很乐意听到


共 (5) 个答案

  1. # 1 楼答案

    我不知道小应用程序,除了它们被严重锁定。安全/访问机器资源等

    如果你需要一个网络部署解决方案,你看过Java Web Start吗?具体见FAQ entry

  2. # 2 楼答案

    坦率地说,尝试从Java小程序访问设备是一个坏主意,即使你可以让它工作,而将动态库加载到传统的小程序中则是一个更坏的主意;事实上,如果你能找到一种欺骗现代浏览器的方法,我会大吃一惊。(考虑可能的安全影响。)

    正如在其他问题上所建议的那样,你最好构建一个可以通过Web Start启动的应用程序

  3. # 3 楼答案

    我对这里的答案也很感兴趣。我的建议是安装。罐子和瓶子。将RXTX的dll放入\program files\java\树中。在尝试使用小程序之前,可以在目标系统上安装它们。我喜欢使用Java Web Start的想法。如果你在小程序上签名,你不能在机器上读/写任何文件吗?这样你就可以安装了。罐子和瓶子。dll,然后再使用它们

    对于windows,我建议使用“windows Java串行Com端口驱动程序”而不是rxtx。 你可以从http://www.engidea.com/blog/informatica/winjcom/winjcom.html下载 我发现它更容易安装和使用,而且没有bug。 我无法将RXTX与USB串行设备一起使用,因为拔下USB端口时RXTX会崩溃。winjcom为我解决了这些问题,还有更多

    我仍在努力决定如何部署DLL,但我并不着急,因为我不希望“Windows Java串行Com端口驱动程序”的DLL发生变化。 -斯托什

  4. # 4 楼答案

    首先,我建议在Applet中这样做可能是个坏主意

    如果你真的去做,也许会有帮助

  5. # 5 楼答案

    使用JavaWebStart。您可以将本机库作为一个签名jar包含在内,一切都应该正常

    1)将本机库放在根目录的jar中 2) 在所有的罐子上签名 3) 编写一个引用所有JAR的JNLP(搜索如何编写JNLP)

    在那之后,它应该会起作用