【发布时间】:2011-05-11 09:52:09
【问题描述】:
我开发了一个命令行(阅读:无 GUI)Java 应用程序,它根据给定的数据集和一系列参数计算数字;并吐出一系列 HTML 文件作为结果报告。这些报告在表格中保存了大量数据,因此为了让用户轻松快速地了解结果,我使用了 JUNG2 库并创建了一个漂亮的图表。
这就是有趣的地方;因为我希望图表是交互式的,所以它应该在应用程序运行并生成文件后部署,每当用户想要查看报告时。我决定使用基于小程序的部署,但是由于以下原因,我对当前的设置不太满意:
我想让软件尽可能简单易用(我的用户不会精通技术,在大多数情况下甚至会害怕技术)。我真的很想只分发一个 JAR,这迫使我将小程序和它需要的所有其他东西放在一个包中,与主应用程序在同一个 JAR 中。
小程序和主应用程序需要传达结果,因此我创建了一个基于 XML 的报告,用于保存信息。只要文件在本地机器上并且没有在它周围移动,一切都可以正常工作。不幸的是,我还需要移动文件。用户应该能够将“结果”文件夹保存到 U 盘上,随时随地将 U 盘插入另一台计算机,并能够随意使用报告。
目前小程序是用以下html代码实现的:
<applet code="package.myapp.visualization.GraphApplet.class"
codebase="file:/home/user/myApp"
archive="myApp-0.2.6-r28.jar"
width="750" height="750">
<param name=input value="results/test_name/results.fxml">
</applet>
如您所见,如果将父文件夹移动到其他位置,此小程序将无法运行。
据我所知,我有几个选择:
a) 更改代码库以指向我们的网络服务器上的 URL,我可以在其中放置 jar 文件。然而,这会产生权限问题,因为小程序将无法读取结果文件。另一种方法是在用户想要可视化图形时将结果文件上传到服务器,尽管由于服务器安全性,我不确定这是否是一个好的选择,以及是否可以这样做,以便自动上传而不打扰用户。
b) 我可以在代码库属性上使用相对路径,但是整个文件夹层次结构在复制时需要保持完整。如果我想不出更好的方法,这可能是最后的手段。
c) 更改部署方法(希望避免这种替代方案,以免在开发阶段花费更多时间)
有什么想法吗?我错过了什么吗?我该如何解决这个问题? 谢谢,
【问题讨论】: