我正在编写用于从网络下载 CSV 文件并将数据插入数据库表中的应用程序。问题是我需要通过 System.setProperty("http.proxyHost", "http-proxy.domain.com");
设置代理等等。当我在本地系统上运行应用程序时,它工作正常,但问题是当我从 JNLP 启动它时。起初我在签署 JAR 时遇到了问题(我已经设法做到了),现在我面临着问题,即使应用程序正在运行,它也无法连接到网络 - 它会抛出异常消息“连接超时:连接”。
JNLP 文件如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp href="launch.jnlp" spec="1.0+">
<information>
<title>TestImporter</title>
<vendor>hol</vendor>
<homepage href=""/>
<description>TestImporter</description>
<description kind="short">TestImporter</description>
</information>
<update check="always"/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+"/>
<jar href="TestImporter.jar" main="true"/>
<jar href="lib/ojdbc14.jar"/>
<jar href="lib/mail.jar"/>
</resources>
<application-desc main-class="cz.test.Importer">
</application-desc>
</jnlp>
我通过以下代码连接到文件:
URLConnection yc = cnb.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
预先感谢您的帮助!
最佳答案
您可以尝试将代码包装在 doPrivileged block 中。看看这个:
http://download.oracle.com/javase/1.4.2/docs/api/java/security/AccessController.html
如果实现后,您的代码仍然失败,也许从 java 控制台粘贴日志会有意义。
关于java - JNLP+代理+流式下载文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776936/