Install4j 静默更新程序进程在代理设置不正确的情况下挂起
Install4j silent updater process hangs in case of incorrect proxy settings
如果 Windows 配置的 "proxy script" 不再存在,install4j 静默更新检查过程似乎会挂起。例如:当它设置为 http://127.0.0.1:50000/proxy.pac 时,IE 给出 "connection refused error",但 install4j 将在尝试下载脚本时无限期地等待。
这也会阻止我们自己的应用程序启动,因为它被配置为在静默更新检查后启动。
安装程序和更新程序是在 Install4j 6.1.2 中创建的。我在 6.1.3 的更改日志中没有看到任何可以解决此问题的内容。您能看看或为我们提供解决方法吗?
"main" #1 prio=5 os_prio=0 tid=0x0000000001f7f000 nid=0x1440 runnable [0x000000000028c000]
java.lang.Thread.State: RUNNABLE
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
- locked <0x00000000d7c99bd0> (a java.io.BufferedOutputStream)
at java.io.PrintStream.write(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source)
- locked <0x00000000d7c99cf8> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.lang.Throwable$WrappedPrintStream.println(Unknown Source)
at java.lang.Throwable.printStackTrace(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.lang.Throwable.printStackTrace(Unknown Source)
at java.lang.Throwable.printStackTrace(Unknown Source)
at com.sun.deploy.net.proxy.ProxyConfigException.<init>(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.getJSFileFromURL(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.retrieveContentOfPACFile(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.contructLegacyPACScript_16(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.init(Unknown Source)
at com.install4j.runtime.installer.helper.content.DeployProxyHelper.getProxyHostInfoWindows(DeployProxyHelper.java:70)
at com.install4j.runtime.installer.helper.content.ProxyHelper.getProxyHostInfoUnguarded(ProxyHelper.java:37)
at com.install4j.runtime.installer.helper.content.ProxyHelper.access[=10=]0(ProxyHelper.java:13)
at com.install4j.runtime.installer.helper.content.ProxyHelper.fetchValue(ProxyHelper.java:25)
at com.install4j.runtime.installer.helper.content.ProxyHelper.fetchValue(ProxyHelper.java:22)
at com.install4j.runtime.installer.helper.comm.actions.FetchObjectAction.execute(FetchObjectAction.java:14)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.exe
该错误存在于 JRE 类 中,因此我们无法直接修复它。唯一的选择是传递 VM 参数
-Dinstall4j.noProxyAutoDetect=true
安装程序关闭代理自动检测。
如果 Windows 配置的 "proxy script" 不再存在,install4j 静默更新检查过程似乎会挂起。例如:当它设置为 http://127.0.0.1:50000/proxy.pac 时,IE 给出 "connection refused error",但 install4j 将在尝试下载脚本时无限期地等待。
这也会阻止我们自己的应用程序启动,因为它被配置为在静默更新检查后启动。
安装程序和更新程序是在 Install4j 6.1.2 中创建的。我在 6.1.3 的更改日志中没有看到任何可以解决此问题的内容。您能看看或为我们提供解决方法吗?
"main" #1 prio=5 os_prio=0 tid=0x0000000001f7f000 nid=0x1440 runnable [0x000000000028c000]
java.lang.Thread.State: RUNNABLE
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
- locked <0x00000000d7c99bd0> (a java.io.BufferedOutputStream)
at java.io.PrintStream.write(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source)
- locked <0x00000000d7c99cf8> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.lang.Throwable$WrappedPrintStream.println(Unknown Source)
at java.lang.Throwable.printStackTrace(Unknown Source)
- locked <0x00000000d7c99bb0> (a java.io.PrintStream)
at java.lang.Throwable.printStackTrace(Unknown Source)
at java.lang.Throwable.printStackTrace(Unknown Source)
at com.sun.deploy.net.proxy.ProxyConfigException.<init>(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.getJSFileFromURL(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.retrieveContentOfPACFile(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.contructLegacyPACScript_16(Unknown Source)
at com.sun.deploy.net.proxy.AbstractAutoProxyHandler.init(Unknown Source)
at com.install4j.runtime.installer.helper.content.DeployProxyHelper.getProxyHostInfoWindows(DeployProxyHelper.java:70)
at com.install4j.runtime.installer.helper.content.ProxyHelper.getProxyHostInfoUnguarded(ProxyHelper.java:37)
at com.install4j.runtime.installer.helper.content.ProxyHelper.access[=10=]0(ProxyHelper.java:13)
at com.install4j.runtime.installer.helper.content.ProxyHelper.fetchValue(ProxyHelper.java:25)
at com.install4j.runtime.installer.helper.content.ProxyHelper.fetchValue(ProxyHelper.java:22)
at com.install4j.runtime.installer.helper.comm.actions.FetchObjectAction.execute(FetchObjectAction.java:14)
at com.install4j.runtime.installer.helper.comm.HelperCommunication.exe
该错误存在于 JRE 类 中,因此我们无法直接修复它。唯一的选择是传递 VM 参数
-Dinstall4j.noProxyAutoDetect=true
安装程序关闭代理自动检测。