使用JNLP将文件安装到主机上并确定生成的路径

时间:2013-03-12 04:42:40

标签: java jar jnlp

我正在开发一个应用程序(Sigar),可通过单击链接通过Web浏览器下载。应用程序将监视机器信息,它需要一些库文件(例如libsigar-x86-linux.so,libsigar-x86-freebsd-5.so)。

我的计划是首先将本机文件放入JAR,然后当使用JWS下载应用程序时,我将

  • 将JAR文件解压缩,包括本机库到文件夹
  • 查找应用运行时确定的当前类路径。
  • 最后设置相对于类路径的java.library.path,以便找到我的本机库。

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

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

但我必须做错事,因为返回的路径是Web服务路径,而不是本地环境中的路径。

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

2 个答案:

答案 0 :(得分:2)

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

请参阅中的资源标记文档 JNLP File Syntax

答案 1 :(得分:0)

如前所述,jnlp中的本地库可能就是你所追求的。

但是,如果由于其他原因您想手动控制展开,可以通过在jar中嵌入jar来实现。见:Extract some content from jar-file downloaded with JWS