Я использую скрипт замены для кода языка в install4j для автоматической установки языка, если программа установки работает в фоновом режиме.Таким образом, скрипт замены возвращает код языка по умолчанию (в моем случае «en»).По какой-то причине переменная установщика sys.languageId
имеет значение null, что приводит к исключению 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);
, переменная останется равной нулю,Как я могу убедиться, что эта переменная установлена?