对应的版本计算实现代码如下:
private void checkVersion() { int curVersion = 0; File f = new File("version"); char[] buf = new char[30]; try (FileReader fr = new FileReader(f)) { int ret = fr.read(buf); curVersion = versionToInt(new String(buf, 0, ret)); } catch (Exception ignore) { // use AppVersion if occur exception } if (curVersion == 0) { curVersion = versionToInt(Version.version); } UpdateExecutor.execute(Version.versionUri, curVersion); }最后,关于升级程序怎么打开APP这个问题可以参考升级程序和SDK的通讯方案。当然也用更新简单的方案,就是升级程序打开非自己名称的exe应用,这种方式只能用于应用程序只有一个exe文件的情况。
// 这里ITQN_update是升级程序的名称 File[] fs = new File(".").listFiles((dir, name) -> name.endsWith(".exe") && !name.equals("ITQN_update.exe")); if (fs != null && fs.length > 0) { try { Desktop.getDesktop().open(fs[0]); } catch (IOException e) { new Alert(Alert.AlertType.ERROR, e.getMessage()).show(); } }应用升级这一块涉及的问题比较多,更多的细节可以通过公众号获取源码,具体阅读源码吧,展开说明的话太多了。
=========================================================
关注 公众号 “HiIT青年” 阅读推文“JavaFX桌面应用-版本升级”,文章底部可以获取源码。