Использование install4j 5.1.12 для развертывания приложения в Windows, Linux и OS X. Он работает в Windows и Linux, но в OS X 10.9 установщик зависает после подготовки помощника install4j. Я использую пакет Oracle JRE 1.7.0_60, который можно загрузить внутри install4j.
Как я могу решить эту проблему?
Я должен добавить, что я пробовал несколько вещей, чтобы получить больше информации:
- Отладочный установщик работает и устанавливает!
- Отключение подписи кода не помогло
- Использование разных JRE (нужно использовать Oracle, 1.7.0_55, 1.8.0_5) не помогло
- Отключение сжатия среды выполнения не помогло
- Отключение опции попытки получения root-прав не помогло
- Использование разных вариантов упаковки не помогло
- Использование несвязанной, предварительно установленной 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