1

我刚刚将以下内容添加到我的 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 显示:

2013 年 5 月 26 日下午 3:34:00 /Volumes/lantern/Lantern Installer.app/Contents/MacOS/JavaApplicationStub[83467] 忽略了无法识别的 Java VM 选项:2013 年 5 月 26 日下午 3:34:19 [0x0-0xf6cf6c ].com.install4j.3831-6452-7413-7646.1343[83467] 不幸的是,此应用程序需要 64 位 Mac

(我假设第一条消息是不相关的,考虑到时间,并且考虑到脚本实际运行)

除了 showErrorMessage 之外,我还应该使用其他方法吗?

4

2 回答 2

0

失败发生在操作可以运行之前。显然,您在“Installer->Screens & Actions”步骤的“Installer”节点上添加了一个 VM 选项,以防止 32 位 JVM 启动。

于 2013-05-27T11:00:29.293 回答
0

问题是“默认执行模式”设置为“带有进度对话框的无人参与模式”。至少,它看起来是这样的。

如果我将“默认执行模式”(在安装程序设置中)更改为“GUI 模式”,那应该可以解决问题(尽管以安装程序中一些毫无意义的额外屏幕为代价)。

于 2013-05-28T05:48:11.577 回答