如何设置 JVM 要使用的代理

2022-08-31 04:50:08

很多时候,Java应用程序需要连接到互联网。最常见的示例发生在它正在读取 XML 文件并需要下载其架构时。

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


答案 1

来自 Java 文档(不是 javadoc API):

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

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

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"

答案 2

要使用系统代理设置:

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


推荐