2011-05-11 48 views
0

我开发了一个基于给定数据集和一系列参数对命令行进行编程的命令行(读取:无GUI)Java应用程序;并作为结果报告吐出一系列HTML文件。这些报告在表格中保存了大量数据,因此为了让用户能够轻松快速地查看结果,我使用了JUNG2库并创建了一个很好的图表。部署问题,基于Web的Java应用程序需要的建议

这里是它变得有趣的地方;因为我希望图形是交互式的,所以只要用户想查看报表,就应该在应用程序运行并生成文件后部署。我决定去与一个基于小应用程序的部署,但我不太满意当前的设置,由于以下原因:

  1. 我想使软件尽可能的简单使用(我赢得用户”不懂技术,甚至在大多数情况下技术恐吓)。我真的只想分发一个JAR,这迫使我把小程序放在与主应用程序相同的JAR的包中。

  2. 小程序和主应用程序需要传递结果,因此我创建了一个用于保存信息的基于xML的报告。只要这些文件在本地机器上,并且没有移动它,一切正常。不幸的是,我还需要将文件移动。用户应该能够将“结果”文件夹存入USB记忆棒,随时随地将记忆棒插入另一台计算机,并能够按照他/她喜欢的方式使用报告。

暂时的小应用程序与下面的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> 

正如你可以看到,如果父文件夹移动到另一个位置,该applet将无法正常工作。


据我知道我有几个选择:

一)更改代码库,使其指向我们的Web服务器的URL,我可以把jar文件。但是,这会产生权限问题,因为applet将无法读取结果文件。另一种方法是在用户想要可视化图形时将结果文件上传到服务器,但由于服务器安全性以及是否可以自动上载而不打扰用户,我不确定这是否是一个好选择。

b)我可以在代码库属性上使用相对路径,但是复制后整个文件夹层次结构需要保持完整。如果我不能提出一个更好的方法来做到这一点,这可能是最后的手段。

C)更改部署方法(想避免这种替代不花更多的时间在开发阶段)

任何想法?我错过了什么吗?我怎么解决这个问题? 谢谢,

回答

1

我不知道我完全理解你的使用情况,但是从我明白,我建议这样的:

转储小程序应用程序中使用Java Web Start启动。 JNLP文件为fxml文件类型声明文件关联。当用户双击一个fxml文件时,它将作为参数传递给JWS应用程序的main(String[])

沙盒JWS应用程序可以使用JNLP API访问本地文件系统上的资源。这是我的demo. of the JNLP API file services

+0

感谢您的建议,安德鲁。如果我理解了你的建议权限,这意味着可以通过双击results.fxml文件触发将作为applet执行的代码,从而创建图形。但是,这将从图中分离出HTML报告,对吧?我想知道是否应该提供关于由“主”应用程序创建的文件夹/文件层次结构的一些信息,以便更好地了解我想实现的目标... – posdef 2011-05-11 12:00:15

+0

@posdef:“..将会有的代码通过双击results.fxml文件触发小程序,从而创建图形。“是&否。大多数没有。 “双击打开”功能是为应用程序设计的(使用'main(String [])'方法) - 它不适用于小程序。 “这将会从图表中分离HTML报告,对吧?”是。但是,你能否重做Java应用程序。也显示HTML?您可能将整个HTML和fxml封装到一个zip归档文件中,给它一个自定义的扩展名,并让用户双击它。 – 2011-05-11 14:52:50

+0

嗯..我实际上是在想让JWS做所有的报告,包括HTML报告,就像你的建议。但是这需要一些设计上的改变,我现在不太喜欢。此外,我的挥杆知识在这一点上绝对不如CSS/HTML设计。所以我担心整个事情最终会成为一大堆丑陋的数字:)无论如何,再次感谢您的建议,我会在未来几天考虑它。 – posdef 2011-05-12 07:35:18