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

使用Java Webstart部署时的依赖性问题,java,deployment,filesystems,dependencies,java-web-start,Java,Deployment,Filesystems,Dependencies,Java Web Start,我正在从事一个Java项目,该项目的目录结构如下: MainFolder / | \ Folder1 Folder2 Folder3... | Program.jar|Run.sh 在Folder1中,我有主jar文件和shell脚本来运行程序。 在Folder2中,我有xml格式的配置文件,以后可能会被程序修改 在Folder3中,我有主程序依赖的jar文件 现在我想使用Java web-start部署这个程序。我目前的理解是,web s

我正在从事一个Java项目,该项目的目录结构如下:

        MainFolder
        /   |     \
Folder1  Folder2  Folder3...
   |
Program.jar|Run.sh
在Folder1中,我有主jar文件和shell脚本来运行程序。 在Folder2中,我有xml格式的配置文件,以后可能会被程序修改 在Folder3中,我有主程序依赖的jar文件


现在我想使用Java web-start部署这个程序。我目前的理解是,web start允许我们使用1个或多个jar文件部署程序。我的问题是,我还需要目录结构。有人能建议解决方案吗

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

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

请参阅webstart的常见问题解答


另外,请查看关于如何使用webstart部署的,Java webstart在使系统符合您的需要方面没有提供任何帮助—它只提供用于内存的程序组件

如果您需要这个结构,您将需要自己维护它(然后,在哪里?)


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

正如其他人所提到的,shell脚本会带来问题。它具体做什么来“运行程序”

对于配置文件“文件夹2”,webstart提供PersistenceService。我有一个小演示。(一)

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

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

1) ,包括PersistenceService和FileContents对象