Install4j ShowErrorMessage не работает?

Я только что добавил следующее в свою конфигурацию install4j:

+              <action name="" id="1260" customizedId="" beanClass="com.install4j.runtime.beans.actions.control.RunScriptAction" 
+                <serializedBean>
+                  <java class="java.beans.XMLDecoder">
+                    <object class="com.install4j.runtime.beans.actions.control.RunScriptAction">
+                      <void property="script">
+                        <object class="com.install4j.api.beans.ScriptProperty">
+                          <void property="value">
+                            <string>boolean sixtyFourBits = System.getProperty("sun.arch.data.model").equals("64");
+if (!sixtyFourBits) {
+    Util.showErrorMessage("Unfortunately, this application requires a 64-bit Mac");
+}
+
+return sixtyFourBits;</string>
+                          </void>
+                        </object>
+                      </void>
+                    </object>
+                  </java>
+                </serializedBean>
+                <condition>return Util.isMacOS();</condition>
+              </action>

Когда я запускаю его на 64-битном Mac, он ничего не делает. Когда я запускаю его на 32-разрядном Mac, программа установки завершает работу без диалогового окна. system.log показывает:

26.05.13 15:34:00 /Volumes/lantern/Lantern Installer.app/Contents/MacOS/JavaApplicationStub[83467] Параметр неопознанной виртуальной машины Java игнорируется: 26.05.13 15:34:19 [0x0-0xf6cf6c ].com.install4j.3831-6452-7413-7646.1343[83467] К сожалению, для этого приложения требуется 64-разрядный Mac

(Я предполагаю, что первое сообщение не имеет отношения, учитывая время и то, что скрипт действительно работает)

Есть ли метод, который я должен использовать, кроме showErrorMessage?


person Leah X Schmidt    schedule 26.05.2013    source источник


Ответы (2)


Сбой происходит до того, как действие может быть запущено. По-видимому, вы добавили параметр виртуальной машины в узел «Установщик» на шаге «Установщик-> Экраны и действия», который предотвращает запуск 32-разрядной JVM.

person Ingo Kegel    schedule 27.05.2013
comment
Но если это так, то как это сообщение об ошибке вообще попадает в журналы? - person Leah X Schmidt; 27.05.2013
comment
В этот момент файл журнала еще не настроен. Все это делается в JVM, и в этот момент JVM даже не работает. - person Ingo Kegel; 27.05.2013

Проблема в том, что «Режим выполнения по умолчанию» был установлен на «Автоматический режим с диалоговым окном прогресса». По крайней мере, так это выглядит.

Если я изменю «Режим выполнения по умолчанию» (в настройках установщика) на «Режим графического интерфейса», это должно исправить ситуацию (хотя и за счет некоторых бессмысленных дополнительных экранов в установщике).

person Leah X Schmidt    schedule 28.05.2013