我刚刚在网络上搜索如何获取系统代理设置。我发现:
System.setProperty("java.net.useSystemProxies", "true");
但它什么也没做。我的公司网络中有代理设置,但显示代理列表的代码:
ProxySelector.getDefault().select(new URI("http://foo/bar")))
说它只是一个“DIRECT”代理。我不想在完成后手动提供代理设置。有没有办法让 JVM 提供从操作系统/浏览器到 Java 程序(不是小程序)的代理设置?
好吧,我想我明白了:我的浏览器代理是由某个脚本设置的,定义在:
Internet Properties/Connections/LAN Settings/Use automatic configuration script
可能这就是 Java 无法正确列出代理的原因,即使它在浏览器中使用也是如此。遗憾的是,JVM 无法解析脚本并提供这些设置...
最佳答案
您必须设置属性: System.setProperty("java.net.useSystemProxies", "true"); 在main方法中,否则没有效果,然后按照您的描述调用getDefault()。
关于java - 如何在java程序(不是小程序)中获取默认代理设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904088/