install4j 6.1.6:"Replacement script for language code" 在 MacOS 上不工作

install4j 6.1.6: "Replacement script for language code" doesn't work on MacOS

我们的软件使用 install4j,我们的应用程序和安装程序也使用不同的语言。我们正在从 install4j 5.1.3 迁移到 install4j 6.1.6。在检查安装程序时,我们发现 "Replacement script for language code" 在 MacOS 上不起作用。为了进行验证,我刚刚构建了简单的安装程序,在替换脚本中 returns 只是 "en"。手册说在这种情况下不应显示语言选择对话框,但在 MacOS 上会显示。 日志输出有 ClassNotFoundException:

[ERROR] java.lang.ClassNotFoundException: com.install4j.script.I4jScript_Internal_7
java.lang.ClassNotFoundException: com.install4j.script.I4jScript_Internal_7
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at com.install4j.runtime.installer.helper.Install4jClassLoader.loadClass(Install4jClassLoader.java:81)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at com.install4j.runtime.installer.ContextImpl.runScript(ContextImpl.java:187)
    at com.install4j.runtime.installer.ContextImpl.runScript(ContextImpl.java:182)
    at com.install4j.runtime.installer.controller.LanguageSelector.initLanguage(LanguageSelector.java:45)
    at com.install4j.runtime.installer.controller.Controller.start(Controller.java:60)
    at com.install4j.runtime.installer.Installer.runInProcess(Installer.java:59)
    at com.install4j.runtime.installer.Installer.main(Installer.java:46)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:65)
    at com.install4j.runtime.launcher.MacLauncher.main(MacLauncher.java:67)

但是,I4jScript_Internal_7 class 包含在存档的 user.jar 中,它是我们的脚本,但由于某些原因 install4j 无法加载它。

这是一个将在 7.0.5 中修复的错误。