如何设置 JVM 要使用的代理
很多时候,Java应用程序需要连接到互联网。最常见的示例发生在它正在读取 XML 文件并需要下载其架构时。
我在代理服务器后面。如何将我的JVM设置为使用代理?
很多时候,Java应用程序需要连接到互联网。最常见的示例发生在它正在读取 XML 文件并需要下载其架构时。
我在代理服务器后面。如何将我的JVM设置为使用代理?
来自 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.proxyHost
http.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"
要使用系统代理设置:
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