部署问题,基于Web的Java应用程序所需的建议

时间:2011-05-11 09:52:10

标签: java applet

我开发了一个命令行(读取:无GUI)Java应用程序,它基于给定的数据集和一系列参数来处理数字;并将一系列HTML文件作为结果报告吐出。这些报告在表中包含大量数据,因此为了让用户能够轻松快速地查看结果,我使用了JUNG2库并创建了一个漂亮的图表。

这里有趣的地方;因为我希望图形是交互式的,所以应该在应用程序运行并生成文件之后部署它,只要用户想要查看报告。我决定采用基于applet的部署,但由于以下原因,我对目前的设置不太满意:

  1. 我想让软件尽可能简单易用(我的用户不会精通技术,甚至在大多数情况下都会受到技术威胁)。我真的只想分发一个JAR,这迫使我把applet和其他所需的东西一起放在与主应用程序相同的JAR中的包中。

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

  3. 暂时使用以下html代码实现applet:

    <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将无效。


    据我所知,我有几个选择:

    a)将代码库更改为指向我可以放置jar文件的Web服务器上的URL。然而,这会产生权限问题,因为applet将无法读取结果文件。另一种方法是在用户想要显示图形时将结果文件上传到服务器,虽然我不确定这是否是一个很好的选择,因为服务器的安全性以及是否可以在不打扰用户的情况下自动进行上传。

    b)我可以在codebase属性上使用相对路径,但是在复制时整个文件夹层次结构需要完整。如果我无法想出更好的方法,这可能是最后的手段。

    c)改变部署方法(希望避免这种替代方案,不要在开发阶段花费更多时间)

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

1 个答案:

答案 0 :(得分:1)

我不确定我完全理解你的用例,但从我的理解,我会建议:

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

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