使用Java Webstart进行部署时的依赖性问题

时间:2010-08-12 05:17:01

标签: java deployment filesystems dependencies java-web-start

我正在开发一个Java项目,其目录结构如下:

        MainFolder
        /   |     \
Folder1  Folder2  Folder3...
   |
Program.jar|Run.sh

在Folder1中,我有主jar文件和shell脚本来运行程序。 在Folder2中,我在xml中有配置文件,以后可能会被程序修改 在Folder3中,我有主程序所依赖的jar文件。

现在我想使用Java webstart来部署这个程序。我现在的理解是web start允许我们使用一个或多个jar文件来部署程序。我的问题是我也需要目录结构。任何人都可以建议解决方案。

3 个答案:

答案 0 :(得分:2)

正如其他人所说,shell脚本会引发问题。它对“运行程序”有什么作用?

对于配置文件 - 'Folder 2',webstart提供PersistenceService。我有一个小演示。 (1)

就'文件夹3'中的Jars而言。移动它们,以及文件夹2和文件夹中的Jar。 1 到名为'lib'的单个目录。主要的Jar和配置文件将是急需的,这是JWS的默认设置。如果任何其他Jars(例如'3')可能不需要立即或根本不需要,则应将它们部署为download ='lazy'。

访问本地文件系统 - 用于读取用户提供的输入或编写他们创建的新文件 - JWS应用程序。 通常需要进行数字签名和信任。但JWS还通过 FileContents对象提供了更有限的访问形式。有关更多详细信息,请参阅演示。下面链接的页面中的文件服务。 (1)

1)Demos of the JNLP API,包括PersistenceService& FileContents对象。

答案 1 :(得分:0)

我认为您必须对webstart部署的结构进行一些更改(可能将其打包为jar或jar集),启动也将通过JNLP,webstart而不是Run.sh完成。

此外,如果您需要写入磁盘的权限,则必须对部署进行签名。

请参阅网站开始常见问题解答here

另请查看有关如何使用webstart进行部署的developer guide

答案 2 :(得分:0)

Java WebStart在您需要时不提供任何帮助来制作filsystem - 它只提供内存的程序组件。

如果你需要这种结构,你需要自己维护(然后,在哪里?)

如果您需要的唯一东西是要运行的shell脚本,您可以将该文件的内容作为资源保存在jar中,在每次运行时创建一个临时文件,将所需内容放入其中,然后执行它,以及完成后删除临时文件。请注意,这将带您进入代码签名的奇妙世界,这是相当繁琐的。