首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java 软件自动升级 (最优答案100分,按劳分配,回帖有分,不够再加。),该如何处理

2013-02-15 
Java 软件自动升级 (最优答案100分,按劳分配,回帖有分,不够再加。)软件结构如下:一个客户端软件。1 包含 入

Java 软件自动升级 (最优答案100分,按劳分配,回帖有分,不够再加。)
软件结构如下:

一个客户端软件。
1 包含 入口的jar文件
2. 一些必要的lib 包
3. 一些配置文件。

需求:
1.能自动更新的最新版本。包括jar, 配置文件等.
2.能回退到以前的版本。
3.更精准的控制,具到某个用户用那个版本。
4.必须考虑更新的准确性(如网络问题,造成更新错误). 还是性能问题,等等。



请大家提供下现有可供参考的开源框架。 或提供自己的思路均可。



[解决办法]
客户端远程连接服务器 验证版本...
然后取要下载的内容 
然后放到合适的目录进行升级........

以上好像是废话
[解决办法]
自动升级模块做以下的事情:
   1.下载最新包放入到update文件夹中
   2.下载完毕后通知主线程,主线程探知有更新,将提示用户自动更新完毕。请用户重启程序,然后自动把update目录中jar包和相关lib覆盖现有版本(只要切断自己应用中的相关业务,你的jar包和lib是可以被覆盖的,若不能覆盖,请写个批处理文件,进行更新)
  3.配置文件同上处理
回滚版本模块做如下事情:
   1.通知服务器用户想回滚的具体版本,服务器上应该保存用户每次更新版本的细节信息
   2.服务器响应有此版本,则开始做和升级模块一样的事情。
更新准确性问题:
  所有文件更新前,去更改自己包中某一个配置文件(它永远不更新,或者很少更新),里面有一个值表明是否正在更新,更新完毕后将此值更新会原值。每次启动时自动检查此值,若发现值不正常,则通知用户继续更新。

[解决办法]
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有足够的速度),但不用去安装配置客户端,也不用去考虑版本升级后对客户端的维护,这就是JWS提供给我们的好处之一。OK,下面我们就来看看如何玩转JWS,本文仅用发布 Application来做说明。
http://www.ibm.com/developerworks/cn/java/l-webstart/index.html
[解决办法]
学习学习~~~
[解决办法]
前来学习
[解决办法]
关注学习
[解决办法]
一个初学者,学习学习!!
[解决办法]
目前站的还没那么高,帮你顶一下``
[解决办法]
关注学习一下
[解决办法]
我认为啊,通过比较文件的最后修改时间,就可以更新!在更新的同时,写一个文件,里面就是以前的版本的文件的最后修改时间等等!然后就可以回到以前了!
[解决办法]

引用:
谢谢楼上各位,提供了很好的思想、建议。

Java Web Start确实是考虑过,但是它是否能支持这两点呢?
   2.能回退到以前的版本。
   3.更精准的控制,具到某个用户用那个版本。

就我了解,不支持
[解决办法]
这个高深了,mark了
[解决办法]
现成的框架没听说过,即便有也不一定满足你自己项目的需求,说说大体思路:

1. 首先确保现在的项目结构清晰,一般桌面应用把构成软件的文件及资源分成三大类,类库(各种jar包或class文件)、资源(图标图片html文档音频文件视频文件等等,也可以打包成相应的jar包)、配置(包括用户的配置文件程序本身的等等)。

2. 更新程序自称体系,和你的应用完全分离开,便于移植到之后的项目里,和主程序间的通信可通过管道或本机开的端口或干脆通过启动更新程序时的命令行参数进行。

3. JAR文件命名时带版本号便于今后管理,是否有更新或更新下载是否无误通过JAR的MD5或SHA1校验(比较保险),更新的JAR经校验无误后直接和老版本JAR放到相同目录下(JAR文件名称带版本号所有不会冲突),使用哪些JAR启动应用程序可以通过更新管理器在更新完成时生成的版本清单配置。清单中可以把JAR按不同的程序版本编组分类,在应用启动时可以读取此清单,默认使用最新的JAR组做classpath启动应用。如果想返回之前的版本也无需回滚安装,只需使用清单中之前版本的JAR组启动应用即可。不同用户可以单独保存自己的清单文件和使用哪个版本启动应用等配置信息到自己的用户目录下(可以通过环境变量获取)。

4. 更新站点等信息和查找更新的策略等也可通过配置文件保存,可以参考一下 Eclipse 的更新程序,Eclipse 的程序更新系统是我见过的最好的了。

------解决方案--------------------


我觉得可以参考maven的实现,可以借用现成的部分,自己在开发一部分
[解决办法]
帮顶,以免沉贴,坐等高手解决
[解决办法]
Eclipse的RCP框架有软件更新功能,本地或者web方式都可以,但是版本回退。。。。这种似乎是高难度
[解决办法]
学习来的。。。。
[解决办法]
  1.下载最新包放入到update文件夹中
  2.下载完毕后通知主线程,主线程探知有更新,将提示用户自动更新完毕。请用户重启程序,然后自动把update目录中jar包和相关lib覆盖现有版本(只要切断自己应用中的相关业务,你的jar包和lib是可以被覆盖的,若不能覆盖,请写个批处理文件,进行更新)
  3.配置文件同上处理
回滚版本模块做如下事情:
  1.通知服务器用户想回滚的具体版本,服务器上应该保存用户每次更新版本的细节信息
  2.服务器响应有此版本,则开始做和升级模块一样的事情。
更新准确性问题:
  所有文件更新前,去更改自己包中某一个配置文件(它永远不更新,或者很少更新),里面有一个值表明是否正在更新,更新完毕后将此值更新会原值。每次启动时自动检查此值,若发现值不正常,则通知用户继续更新。
[解决办法]
等着按劳分配呢
[解决办法]
http://chenxiaobu.blog.163.com/blog/static/48251110200946112653482/
[解决办法]
来学习的~~~~~~~~~~
[解决办法]


[解决办法]
研究一下OSGi,就是Eclipse用的这一套。估计是最好的了。
[解决办法]
Java 软件自动升级 (最优答案100分,按劳分配,回帖有分,不够再加。),该如何处理
[解决办法]
过来学习一下 
[解决办法]


服务器有好多版本, 然后想更新哪个就连接那个版本的文件夹, 然后简单的比较下各文件时间, 有不同的下载
[解决办法]
占个位吧。。
[解决办法]
给我加点分吧,我穷死了,想下本书,可是没有分!
[解决办法]
我还不知道分在哪里看?
[解决办法]
初学者不懂这些
[解决办法]
学习学习
[解决办法]
要学习java,用来笔试和进阶有什么书啊?我有一点点java基础的
[解决办法]
关注java
[解决办法]
进来学习
[解决办法]

引用:
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有足够的速度),但不用去安装配置客户端,也……

+1
[解决办法]
刚学不久不是很明白,学习一下.

[解决办法]

每天回帖即可获得10分可用分
[解决办法]
我是新手,来学习看看。
[解决办法]
进来学习下
[解决办法]
应用OSGI技术
[解决办法]
引用:
自动升级模块做以下的事情:
  1.下载最新包放入到update文件夹中
  2.下载完毕后通知主线程,主线程探知有更新,将提示用户自动更新完毕。请用户重启程序,然后自动把update目录中jar包和相关lib覆盖现有版本(只要切断自己应用中的相关业务,你的jar包和lib是可以被覆盖的,若不能覆盖,请写个批处理文件,进行更新)
  3.配置文件同上处理
回滚版本模块做如下事情:
  1……


JWS,技术比较新的技术,期待学习下
[解决办法]
学习来的
[解决办法]
帮顶,等高手解决,顺便学习!
[解决办法]
最近我也有这方面的需要。。。洗耳恭听。。。
[解决办法]
webstart
不过web start只支持更新到最新的,不支持回滚的。
[解决办法]
关注中
[解决办法]
学习了

[解决办法]
关注 以免沉贴
[解决办法]
可以直接在代码里实现在网络上的链接·链接的URL则是sun公司Java板块的更新信息··如果有更新信息就执行更新···初步思想···
[解决办法]
好好考虑一下。
[解决办法]
按劳分配。。。


我算么。。。。。。
[解决办法]
学习思想
[解决办法]
引用:
1.下载最新包放入到update文件夹中
  2.下载完毕后通知主线程,主线程探知有更新,将提示用户自动更新完毕。请用户重启程序,然后自动把update目录中jar包和相关lib覆盖现有版本(只要切断自己应用中的相关业务,你的jar包和lib是可以被覆盖的,若不能覆盖,请写个批处理文件,进行更新)


  3.配置文件同上处理
回滚版本模块做如下事情:
  1.通知服务器用户想回滚的具体版本,……



支持!
[解决办法]
来学习下
[解决办法]
近期我们也在做这样一个实现,关注,等大家的评论结果。
[解决办法]
关注一下
[解决办法]
过来打酱油~
[解决办法]
没最终结果?
[解决办法]
不好意思,不知道你说的是什么。
[解决办法]
做过一个。

需要单独做一个线程,要独立于你要更新的jar,否则本地的jar不能被替换。

服务端保留所有版本号对应的文件的备份(包括删除的)

启动时检查本地版本号和服务器最新版本号
如果不同,取最新版本中变化的部分。

重启java(用程序调用 msdos或者shell)
[解决办法]
学习而来。。
[解决办法]
不好意思啊,还是菜鸟!!!祝你好运
[解决办法]
在软件中添加独立的引导模块,如果需要升级,就对现有的jar包进行升级,如果不需要,就启动软件,并关闭自已
[解决办法]
是否可以使用svn来做服务器的版本控制
  使用java方式来操作更新与还原版本,(svnkit可以在非商业软件中免费使用)

[解决办法]
引用:
引用:
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有……


++1 。支持,帮顶。祝楼主好运啦
[解决办法]
引用:
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经梦寐以求的事情,程序运行在客户端(本地运行,当然有足够的速度),但不用去安装配置客户端,也……

这个看上去不错,不过我感觉LZ更新不是很频繁的话还是自己部署比较好点,毕竟差不了那么多吧
[解决办法]
引用:
引用:
引用:
Java Web Start(以下简称JWS)是SUN提供的一种通过Web来部署和发布Java 程序的新技术,它既可以用来发布Application,也可以用来发布Applet,它获去年全球Java技术最佳创意奖。它仅在第一次运行时下载程序,以后的事情,就全全交给JWS,包括版本的自动更新和维护。这是我们曾经……


每次遇到帮顶哥   我就是情不自禁~~~凸  凸
[解决办法]
为什么还是不大明白呢?
[解决办法]
学习来的~~
[解决办法]
路过,学习
[解决办法]
引用:
我觉得可以参考maven的实现,可以借用现成的部分,自己在开发一部分

嗯,我也感觉maven已经实现了所有需求

检测pom工程版本
parent pom自我更新
最后一个不太清楚
[解决办法]
关注......
[解决办法]
暂时还不了解。
[解决办法]
学习
学习
支持4楼的
[解决办法]
qiu feng on

热点排行
Bad Request.