如果安装程序在后台运行,我在install4j中使用替换脚本来自动设置语言。
因此,替换脚本返回默认语言代码(" en"在我的情况下)。
由于某种原因,安装程序变量sys.languageId
为空,这会导致NullPointerException。
java.lang.NullPointerException
at java.util.Hashtable.put(Unknown Source)
at java.util.Properties.setProperty(Unknown Source)
at com.install4j.runtime.installer.helper.InstallationProperties.setLanguageId(InstallationProperties.java:105)
at com.install4j.runtime.installer.InstallerContextImpl.finishInstallationProperties(InstallerContextImpl.java:417)
at com.install4j.runtime.installer.InstallerContextImpl.finish(InstallerContextImpl.java:339)
at com.install4j.runtime.installer.controller.Controller.handleCommand(Controller.java:268)
at com.install4j.runtime.installer.controller.Controller.start(Controller.java:106)
at com.install4j.runtime.installer.Installer.runInProcess(Installer.java:58)
at com.install4j.runtime.installer.Installer.main(Installer.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:25)
即使如果我尝试使用context.setVariable("sys.languageId", defaultLanguage);
在替换脚本中显式设置变量,该变量仍保持为空。
我怎样才能确定该变量已设置?