我正在尝试使用Java Web start远程部署项目。这里它适用于单个jar文件。任何人都可以告诉我如何为多个jar文件部署它,因为我使用的是使用sqlite-jni.dll
在Windows上执行的SQLite DB吗?我需要将此文件包含在JNLP中。
任何形式的帮助都将受到赞赏。
提前致谢。
答案 0 :(得分:3)
将本机放在已签名的Jar文件的根目录中,并将其添加到JNLP中的nativelib
元素中。由于它是DLL,请确保将其添加到特定于Windows的resources
部分。
你有Mac的本地人吗?和* nix?
E.G。
<?xml version='1.0' encoding='UTF-8' ?>
<jnlp spec='1.0' codebase='http://our.com/lib/' href='our.jnlp'>
<information>
<title>Our App.</title>
<vendor>our.com</vendor>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version='1.5+' />
<jar href='our.jar' main='true' />
<jar href='sqlite.jar' />
</resources>
<!-- Supply the DLL only to windows -->
<resources os='Windows' >
<nativelib href='sqlite-jni-windows.jar' />
</resources>
<application-desc main-class='com.our.Main' />
</jnlp>
在此示例中,所有资源都应位于http://our.com/lib/
。
本机(在本例中为DLL)应始终位于Jar文件的根目录中。
我还提供JaNeLA来检查JNLP文件的有效性。对基于JWS的发布的许多其他方面进行健全性检查。
答案 1 :(得分:0)
在我们的例子中,我们在jnlp文件中指定了所需的所有文件(jar和zip)。我们使用过.dll,但它们与已经安装在系统上的程序打包在一起。我们通过我们与该计划进行了互动。我们所需要的只是确保在Windows路径变量中指定.dll的路径。
在打包方面,我们将所有jar包装成.war文件,然后将.war放入.ear文件中(不是必需的,但我们做了)并将其部署到我们的应用程序服务器。当我们在战争中更新jar版本时,我们还更新了.jnlp文件中的jar版本号(以及我们使用的一些version.xml文件中)并重新部署它们。然后当客户端启动时,他们会检查新的.jnlp文件并下载正确的罐子。
这有用吗?我是否正确理解了您的问题?