使用Java Web Start远程部署项目

时间:2011-03-31 12:51:56

标签: java java-web-start

我正在尝试使用Java Web start远程部署项目。这里它适用于单个jar文件。任何人都可以告诉我如何为多个jar文件部署它,因为我使用的是使用sqlite-jni.dll在Windows上执行的SQLite DB吗?我需要将此文件包含在JNLP中。

任何形式的帮助都将受到赞赏。

提前致谢。

2 个答案:

答案 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文件并下载正确的罐子。

这有用吗?我是否正确理解了您的问题?