I've developed a desktop Swing app and I'm thinking about the best way to provide the autoupdate feature.
I know that JavaWebStart provides this but I think that It doesn't suit my needs because I need to read local files so I would need to sign the jar. Besides, JWS requires extra work to deploy in the server while now I only need to upload the .jar.
I've been thinking about this approach:
A first JAR (which never needs updating) loads the splashscreen, checks the current version in a config.xml and compares it to the server config.xml.
If server version is newer, ask the user whether he wants to update. In that case, download the new "main.jar", the new "config.xml" and the new splash/icon, check MD5SUM, and replace the old files with the new ones.
Launch "main.jar".
I don't know If I'm trying to reinvent the wheel or If there's a better pattern than the one I've put above.
We did a similar thing. We just got it via https and downloaded the jar. To know if you need a new one we just check the size on the stream. Theoretically that may not work, but in practice it did. We got even fancier by getting the directory listing where the jars were located, parsing it and downloading each jar, so the name of the jar wasn't hard coded either. There are a couple of ugly points, though.
First was launching a new jvm process to start the new jar is a not so simple.
Second, you have to be sure you don't corrupt your jar if your update fails in the middle.
Finally, there is no way to update the bootstraping jar with this process.
I've developed a desktop Swing app and I'm thinking about the best way to provide the autoupdate feature.I know that JavaWebStart provides this but I think that It doesn't suit my needs because I need...
比萨店菜单
该
桌面
应用程序
可加快订购过程。 工作人员使用图形界面输入客户的订单,并自动计算总价和任何可能使客户受益的适用折扣。 该
应用程序
还将具有打印订单和保存客户地址的
功能
。
工作正在进行
中
。
##完成的
支持餐厅提供的任何可食用物品的订单:经典披萨,定制披萨,配菜,饮料,沙漠,...
自动计算任何适用的折扣。
提供打印订单报告的可能性。
完全实现设计模式MVC(目前没有控制器)。
管理客户端数据库。 客户的姓名,地址和电话号码应存储起来,以便以后的任何订单都可以轻松获取。
可从发行版
中
下载可运行的JAR(60 MB)。
报告示例:
OracleJDK 8
用于报告/打印的JasperReports库6.1: : )
乔达时间图书馆
因为用
Java
FX做了个PC的小说下载阅读软件,所以想实现下
自动更新
,每次手动下载更新实在太麻烦了,后来就百度了一下看看有没有现成的结果找到的FXLauncher,这个东西的官方文档实在是太过简洁了。不过好在弄出来了
1.首先下载官方的domo,然后分析他的配置
<dependency>
<groupId>...
前景:将
java
fx打包成exe
应用程序
,并可实现在线更新。个人记录
首次接触
java
fx,
打成exe的方式有很多种(注意是模块化项目,还是非模块化的。 jdk9的项目 支持模块化,项目
中
仅有一个module-info )官方写了很多,但实现起来,总有毛病。项目使用maven,只看了maven的,Gradle 不搞
打成jar,用exe4j 将环境打进exe
jdk1.8的
Java
package
jdk14+的 jpackager (模块化/非模块化,本文实现的是非模块化的)
经多次尝试,最后试出来第
基于
Java
swing
开发的器材维修管理系统-
桌面
程序
具体
功能
包括登陆注册,修改个人信息,登记管理维修信息,修改维修信息的状态等
用户角色包括:普通用户,管理员,维修工
所用技术:
java
bean+jdbc+mysql进行开发
自动
升级
客户端首先会将本地的autoupdate.xml内容发送给服务端,服务端收到客户端的版本
信息后与服务端本地的版本信息(autoupdate.xml)进行比较,首先比较Version,如果一致
则通知客户端无需更新,如果不一致则检查Files
中
各文件的SubVer,服务端将SubVer不一致
的文件发送给客户端,对于服务端有而客户端没有的文件也需要发送给客户端,处理完所
有File后,服务端将本地的history.htm与传送给客户端,并通知客户端更新完毕;客户端收
到更新完毕后的应答后自动打开history.htm,将更新历史信息显示给用户查看。
☆
Java
程序员居家旅行必备课程 ☆
Java
学习指南系列的第4篇,介绍基于
Java
Swing
的的高级应用技术。本篇的前一篇是
Swing
入门篇。
Swing
系列教程分为两篇:(1)
Swing
入门篇 (2)
Swing
高级篇。本篇内容至少包含:- 高级绘制技术,包含线型、渐变色、文本的精确绘制- 不规则形状及图表的绘制- 工作线程与界面线程的原理- 短任务、长任务、定时任务的应用举例- 弹出式窗口 Popup的使用方法- 短消息提示 Toaster 的设计与使用- 事件处理机制,鼠标键盘事件处理,以及一个基于键盘操作的“推箱子”游戏 - 多行文本的显示- 图片操作:缩放、剪裁、旋转、镜像,以及一个屏幕截图程序的实例- 管理型应用界面的框架- 向导型应用界面的框架- 文档型应用界面的框架- 拖放支持 Drag & Drop,一个可拖拽排序的列表,以及一个拼图游戏的实现* 课程特色 *轻快 - 采用小章节教学,学起来轻松实用 - 以实际工程需要出发来设计课程有趣 - 穿插大量特效实例,增加趣味性和学员的成就感专业 - 课程
中
采用的代码库,就是经过良好封装的成熟的库本篇穿插多个实例,通过实例,综合运用多种技术,使学员对项目的构建有所有认识。
我们的很多程序是运行在
Java
5
中
的,客户端安装的JRE如果不进行配置,一般都是会自动
升级
为最新的版本如JRE1.6以上,这样就造成了很多不必要的麻烦。
下面就是如何去掉
Java
的
自动更新
功能
,其实很简单了。
设置步骤:
1、开始菜单-设置-控制面板,打开控制面板:
在开发
Java
桌面
应用程序
时,可以使用
Swing
或
Java
FX。
Swing
是一个用于创建
桌面
应用程序
的图形用户界面 (GUI) 工具包,是
Java
的标准 GUI 工具包。它提供了丰富的界面组件和布局管理器,可以让你创建复杂的界面。
Swing
在
Java
1.2 版本
中
推出,现在已经是一个成熟的工具包。
Java
FX 是 Oracle 公司推出的一个新的 GUI 工具包,它提供了比
Swing
更多的界面组件和布局管理器,并且使用起来更简单。
Java
FX 在
Java
1.8 版本
中
推出,是一个较新的工具包。
对于新项目,建议使用
Java
FX,因为它是
Java
的最新 GUI 工具包,提供了更多的
功能
和更好的用户体验。但是,如果你已经熟悉
Swing
并且项目对兼容性要求较高,也可以使用
Swing
。