我有一个Swing/Java应用程序,用于客户端,每周更新一次。问题是设置只是布局类和它们各自的目录,在更新时我只更新类。
我想做一个包含所有类的jar,但我不知道如何更新它.
此外,一些客户端需要在一周内进行一些更新,其中只有一到两个类将被更新。
怎样才是正确的方法?
我在使用Eclipse。编辑:我知道如何创建jar,只是不知道如何动态更新它。
发布于 2013-08-14 17:26:37
这样做的一般方法,即使只做了一些小的更改,也是在每次更新后重新打包JAR,并将该JAR交给用户。用户将替换现有的JAR。你如何生产你的罐子取决于你。很多IDE都支持它,您可以编写一个shell脚本,使用现有的构建系统,比如ant或maven,甚至make,什么都可以。(见下文编辑)
如果JAR非常大,部署也很麻烦,那么您可以将项目分成更小的子组件,每个子组件都有自己的JAR,并且只重新分发包含更改的子组件。对于您来说,这可能是一个重要的重构,也可能不是一个适当的重构。对于大多数小型或中等规模的项目来说,这通常是不必要的。
至于部署,也有无数种方法可以使用户更容易地进行部署。你可以给他们一个JAR文件。您可以使用例如install4j。您可以使用(尽管它有点笨重)。还有其他人。
install4j和JWS都支持自动检查更新。如果您选择支持该功能,您所需要做的就是更新您的发行网站,用户将自动接收更新。这也取决于你。
但是,对您的问题的一个简短的回答是:如果您将所有的类打包在一个JAR中,那么不管有多少类更改,您都希望将整个更新的JAR提供给用户。抵消这一成本的好处是,JAR是一个很好的、压缩的、独立的应用程序/库源代码集合,这使得管理和部署非常方便。
编辑:针对您指定使用Eclipse的编辑,Josh M在他对您的答复的评论中给出了说明。为了增加他的评论,要导出一个可运行的Jar,您必须设置一个运行配置,如果您已经在Eclipse中运行了您的应用程序,您可能已经安装了。如果没有,可以在“运行”菜单中创建一个。
编辑2:请参阅Thorbjørn Ravn Andersen's answer以及一些好的JWS提示。
发布于 2013-08-14 17:37:30
我建议您研究一下Java,它的设计正是为了满足您的需要。
您需要首先创建完成的部署,然后可以查看如何为部署创建JNLP文件,以及将所有文件放置到web服务器以供用户访问的方法。现在,让用户在每次更新时下载整个程序。当您变得更有经验时,您可以了解如何进行增量更新。
我强烈建议在部署路径中包含一个版本号或时间戳,这样jar文件就不会意外地被错误地缓存在客户机中。
https://stackoverflow.com/questions/18238192
复制相似问题