1

我正在开发一个应用程序(Sigar),可以通过单击链接通过网络浏览器下载。该应用程序将监视机器信息,并且它需要一些库文件来执行此操作(例如 libsigar-x86-linux.so、libsigar-x86-freebsd-5.so)。

我的计划是先将原生文件放入一个 JAR 中,然后在使用 JWS 下载应用程序时,我会

  • 解压 JAR 文件,包括本地库到一个文件夹
  • 查找应用程序运行时确定的当前类路径。
  • 最后设置java.library.path相对于classpath,这样就可以找到我的原生库了。

目前我正在尝试使用以下代码确定 JAR 的路径:

String path = MyClass.class.getProtectionDomain()
   .getCodeSource().getLocation().getPath();

但我一定是做错了什么,因为返回的路径是 Web 服务路径,而不是本地环境中的路径。

谁能指出我目前的计划中有哪些错误?谢谢。

4

2 回答 2

2

JNLP 文件中的nativelib标记旨在处理您需要的任何本机库。

请参阅JNLP 文件语法中资源标签的文档 。

于 2013-03-12T07:08:29.893 回答
0

如前所述,本机库jnlp可能是您所追求的。

但是,如果出于其他原因您想手动控制 unpacing,您可以通过在 a 中嵌入 a 来jar实现jar。请参阅:从使用 JWS 下载的 jar 文件中提取一些内容

于 2013-03-12T07:21:04.973 回答