macos - 准备助手后 install4j 安装程序在 OS X 上挂起

标签 macos install4j

使用 install4j 5.1.12 将应用程序部署到 Windows、Linux 和 OS X。它适用于 Windows 和 Linux,但在 OS X 10.9 上,安装程序在准备好 install4j 助手后挂起。 我使用的是捆绑的 Oracle JRE 1.7.0_60,可以在 install4j 中下载。

如何解决这个问题?

我应该补充一点,我尝试了几种方法来获取更多信息:

  1. 调试安装程序可以运行并安装!
  2. 禁用代码签名没有帮助
  3. 使用不同的 JRE(我们需要使用 Oracle、1.7.0_55、1.8.0_5)没有帮助
  4. 禁用缩小运行时并没有帮助
  5. 禁用尝试获取 root 权限的选项没有帮助
  6. 使用不同的包装选项没有帮助
  7. 使用非捆绑的预安装 Oracle JRE 不起作用

这是 jstack 关于挂起安装程序过程的说法:

localhost:~ user$ jstack 1540
2014-07-07 12:00:31
Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.60-b09 mixed mode):

"Attach Listener" daemon prio=5 tid=0x00007fd819d10000 nid=0x6c37 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"AWT-AppKit" daemon prio=5 tid=0x00007fd819bb9800 nid=0x303 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" daemon prio=5 tid=0x00007fd8198a8800 nid=0x4503 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=5 tid=0x00007fd8198a8000 nid=0x4303 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=5 tid=0x00007fd81989f000 nid=0x4103 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=5 tid=0x00007fd819899800 nid=0x3f03 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=5 tid=0x00007fd819865000 nid=0x2b03 in Object.wait() [0x00000001081b6000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000007dae05630> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000007dae05630> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" daemon prio=5 tid=0x00007fd81985f000 nid=0x2903 in Object.wait() [0x00000001080b3000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000007dae051b8> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
    - locked <0x00000007dae051b8> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00007fd819811000 nid=0x1b03 runnable [0x00000001048fd000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    - locked <0x00000007dae04ec0> (a java.util.Vector)
    - locked <0x00000007dae04f18> (a java.util.Vector)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
    at java.lang.Runtime.load0(Runtime.java:795)
    - locked <0x00000007dae175d0> (a java.lang.Runtime)
    at java.lang.System.load(System.java:1062)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
    - locked <0x00000007dae04ec0> (a java.util.Vector)
    - locked <0x00000007dae04f18> (a java.util.Vector)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    - locked <0x00000007dae175d0> (a java.lang.Runtime)
    at java.lang.System.loadLibrary(System.java:1088)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1653)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1682)
    at java.awt.EventQueue.invokeAndWait(EventQueue.java:1251)
    at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1347)
    at com.install4j.runtime.installer.Installer.getScreenExecutor(Unknown Source)
    at com.install4j.runtime.installer.Installer.runInProcess(Unknown Source)
    at com.install4j.runtime.installer.Installer.main(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
    at com.install4j.runtime.launcher.MacLauncher.main(Unknown Source)

"VM Thread" prio=5 tid=0x00007fd81985c000 nid=0x2703 runnable 

"VM Periodic Task Thread" prio=5 tid=0x00007fd81989a800 nid=0x4703 waiting on condition 

JNI global references: 239

最佳答案

安装程序选项中设置的自定义 OS X 图标文件已损坏。用固定版本替换该文件解决了这个问题。

关于macos - 准备助手后 install4j 安装程序在 OS X 上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24608418/

相关文章:

在 bash 中找不到 mysql 命令

python - Conda:创建虚拟环境

junit - 使用 Junit 测试 install4j 安装程序行为

install4j - 如何使用 Install4J 将参数从启动程序传递到更新程序

java - Install4j 安装程序在出现 NullPointerException 的第一个欢迎屏幕之前停止

java - 以普通用户身份安装 Install4j 时出现 NotSerializableException

java - 在构建和签名后修改或自定义安装程序的可能方法有哪些?

尝试添加 Mac 自定义图标文件时,svn 在路径 "Invalid control character ' 中返回 'Icon\015' 0x0d'

linux - 终端中以非零代码退出的任何命令都会关闭我的终端窗口

objective-c - 如何使用 MobileDevice 框架将文件写入我的应用程序的文档目录?