我编写了一个非常简单的演示项目,它有一个后台服务,该服务仅运行一个可以处理 CLI 命令的 telnet 服务器,以便我可以弄清楚如何进行编程式无头更新。问题似乎有两个方面:首先,如何配置安装程序项目,以便我有一个用于最初安装服务的 GUI 安装程序,其次,安装后,我需要执行哪些 API 调用才能执行以下操作:无头更新。
我编写了以下可以通过应用程序 CLI 执行的命令:
@Command(abbreviation = "updateChecker")
public String updateChecker() {
try {
final String updateUrl = Variables.getCompilerVariable("sys.updatesUrl");
final UpdateDescriptor updateDescriptor = UpdateChecker.getUpdateDescriptor(updateUrl, ApplicationDisplayMode.UNATTENDED);
if (updateDescriptor.getPossibleUpdateEntry() != null) {
return updateDescriptor.getPossibleUpdateEntry().getFileName();
} else {
return "No update";
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Command(abbreviation = "isUpdateScheduled")
public String isUpdateScheduled() {
try {
final String updateUrl = Variables.getCompilerVariable("sys.updatesUrl");
if (UpdateChecker.isUpdateScheduled()) {
return "true";
} else {
return "false";
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
@Command(abbreviation = "executeScheduledUpdate")
public void executeScheduledUpdate() {
try {
final String updateUrl = Variables.getCompilerVariable("sys.updatesUrl");
UpdateChecker.executeScheduledUpdate(null, true, null);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
当我调用“updateChecker”时,我可以在我的服务器上看到新版本的安装程序文件。
当我调用“isUpdatedScheduled”时,它总是返回 false。
当我调用“executeScheduledUpdate”时,它什么也不做。