如何设置 JVM 使用的代理

新手上路,请多包涵

很多时候,Java 应用程序需要连接到 Internet。最常见的示例发生在读取 XML 文件并需要下载其模式时。

我在代理服务器后面。如何设置我的 JVM 以使用代理?

原文由 Leonel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

从 Java 文档( 不是 javadoc API):

http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

在命令行上启动 JVM 时,设置 JVM 标志 http.proxyHosthttp.proxyPort 。这通常在 shell 脚本(在 Unix 中)或 bat 文件(在 Windows 中)中完成。这是 Unix shell 脚本的示例:

 JAVA_FLAGS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
java ${JAVA_FLAGS} ...

在使用 JBoss 或 WebLogic 等容器时,我的解决方案是编辑供应商提供的启动脚本。

许多开发人员都熟悉 Java API (javadocs),但很多时候文档的其余部分被忽略了。它包含很多有趣的信息:http: //download.oracle.com/javase/6/docs/technotes/guides/


更新: 如果您不想使用代理来解析某些本地/内部网主机,请查看 @Tomalak 的评论:

也不要忘记 http.nonProxyHosts 属性!

 -Dhttp.nonProxyHosts="localhost|127.0.0.1|10.*.*.*|*.example.com|etc"

原文由 Leonel 发布,翻译遵循 CC BY-SA 4.0 许可协议

要使用系统代理设置:

 java -Djava.net.useSystemProxies=true ...

或者以编程方式:

 System.setProperty("java.net.useSystemProxies", "true");

来源: http ://docs.oracle.com/javase/7/docs/api/java/net/doc-files/net-properties.html

原文由 gr5 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题