我正在开发一个Java项目,其目录结构如下:
MainFolder
/ | \
Folder1 Folder2 Folder3...
|
Program.jar|Run.sh
在Folder1中,我有主jar文件和shell脚本来运行程序。 在Folder2中,我在xml中有配置文件,以后可能会被程序修改 在Folder3中,我有主程序所依赖的jar文件。
现在我想使用Java webstart来部署这个程序。我现在的理解是web start允许我们使用一个或多个jar文件来部署程序。我的问题是我也需要目录结构。任何人都可以建议解决方案。
答案 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中,在每次运行时创建一个临时文件,将所需内容放入其中,然后执行它,以及完成后删除临时文件。请注意,这将带您进入代码签名的奇妙世界,这是相当繁琐的。