1

我想加载一个jar,它可以System.loadLibrary在系统内进行一次调用并加载一个dll。该 jar 还将包含所有本机方法实现。

由于小程序有一个类加载器并且调用System.loadLibrary两次抛出UnsatisfiedLinkError我不能将 jar 加载到小程序本身(如果我这样做会抛出异常并且连续的本机调用将什么都不做)。

意识到这个问题,hacky 的解决方案是将 jar 放入 java 类路径,以便加载一次(来自 JRE 的 ext/文件夹)。

我的问题是:在不将 jar 放入 java ext 文件夹或在系统中创建另一个类路径条目的情况下,解决此问题的正确举措是什么?

4

1 回答 1

2

最简单的方法是使用Java Web Start部署本机。

  • 将本地人放在每个系统的签名 Jar 的根目录中。例如
    • native-win.jar
    • native-osx.jar
    • native-nix.jar
  • 创建一个引用操作系统特定resources部分中每个 Jar 的扩展 JNLP。
  • 引用主小程序或应用程序 JNLP 中的扩展。

从 1.2 开始,JWS 可用于启动自由浮动框架和小程序。最近,也可以使用 JWS 部署小程序并保持嵌入在网页中。

于 2013-01-18T22:07:50.750 回答