install4j - jre.bundle 未更新

install4j - jre.bundle is not updated

我正在使用 install4j 5.1.15 并且我有 Mac OS 和 Windows 64 位的安装程序以及捆绑的 JRE 7。Installation/Update 我的应用程序使用此安装程序可以正常工作。

现在我需要将捆绑的 JRE(安装在 /Applications/MyApp/.install4j/jre.bundle 中)从 7 升级到 8。我使用 JRE 8 构建了新的安装程序(并在更新操作的配置中选中了选项 Update bundled JRE ).

问题:当我进行全新安装时,JRE 8 已安装,但当我尝试更新现有安装时,现有 JRE 7 未更新为 JRE 8。其他文件已正确更新。 Mac OS 和 Windows 64 位上的行为相同。我也没有在日志文件中看到任何 warnings/errors。这是一个错误还是我遗漏了什么?

编辑installation.log 中没有关于更新 JRE 文件的消息,即使 updateBundledJre: true:

[INFO] com.install4j.runtime.beans.actions.InstallFilesAction [ID 767]: Execute action
       Property sizeCalculatorScript: null
       Property installRuntime: false
       Property saveDownloadedFiles: false
       Property updateBundledJre: true
       Property checkFreeSpace: true
       Property validateApplicationId: false
       Property delay: false
       Property triggerReboot: true
       Property directoryResolverScript: null
       Property fileFilterScript: null
       Property showFileNames: true
       Property rollbackSupported: true
Install file: /Applications/MyApp/my-file.tmp; size: 245 bytes; exists: true
Execute action successful after 5650 ms

我尝试将 installRuntime 属性 的值更改为 true,它解决了我的问题。在更新过程中,当前的 JRE 被移动到文件夹 /Applications/MyApp/.install4j/__i4j_jre_backup 并且新的 JRE 被正确安装。它现在适用于 Mac OS 和 Windows。

installation.log:

[INFO] com.install4j.runtime.beans.actions.InstallFilesAction [ID 767]: Execute action
       Property sizeCalculatorScript: null
       Property installRuntime: true
       Property saveDownloadedFiles: false
       Property updateBundledJre: true
       Property checkFreeSpace: true
       Property validateApplicationId: false
       Property delay: false
       Property triggerReboot: true
       Property directoryResolverScript: null
       Property fileFilterScript: null
       Property showFileNames: true
       Property rollbackSupported: true
       Install file: 
Install file: /Applications/MyApp/my-file.tmp; size: 245 bytes; exists: true
Install file: /Applications/MyApp/.install4j/jre.bundle/Contents/Home/jre/bin/java; size: 103632 bytes; exists: false
       File options set to: [fileTime: Wed Jul 29 12:34:46 CEST 2015, mode: 644, overwriteMode: Always ask except for update, shared: false, uninstallMode: If created, but not for update, delayIfNecessary: false]
...
Execute action successful after 12345 ms