我刚刚将以下内容添加到我的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显示:
5/26/13 3:34:00 PM / Volumes / lantern / Lantern Installer.app/Contents/MacOS/JavaApplicationStub [83467]忽略了无法识别的Java VM选项: 5/26/13 3:34:19 PM [0x0-0xf6cf6c] .com.install4j.3831-6452-7413-7646.1343 [83467]不幸的是,这个应用程序需要64位Mac
(我假设第一条消息是无关的,给定时间,并且假设脚本实际运行)
我应该使用除showErrorMessage以外的其他方法吗?
答案 0 :(得分:0)
在可以运行操作之前发生故障。显然,您已在“Installer-&gt; Screens&amp; Actions”步骤的“Installer”节点上添加了一个VM选项,阻止32位JVM启动。
答案 1 :(得分:0)
问题是“默认执行模式”设置为“无人参与模式,带进度对话框”。至少,这就是它的样子。
如果我将“默认执行模式”(在安装程序设置中)更改为“GUI模式”,那应该可以解决问题(尽管安装程序中某些无意义的额外屏幕会付出代价)。