如何从Java系统设置中获取代理设置

我正在寻找如何在Windows下使用Java获取系统代理信息的方式,但我发现只有一种方法。 但它对我不起作用。

public static void main(String[] args) throws Throwable { System.setProperty("java.net.useSystemProxies", "true"); System.out.println("detecting proxies"); List pl = ProxySelector.getDefault().select(new URI("http://ihned.cz/")); for (Proxy p : pl) System.out.println(p); Proxy p = null; if (pl.size() > 0) //uses first one p = pl.get(0); System.out.println(p.address()); System.out.println("Done"); } 

当我运行程序时,我得到:

 detecting proxies DIRECT null Done 

Java意味着,我直接坐在互联网上。 但这是错的。 我落后于代理人。 我无法为我的电脑获得解决方案。

正如我们在评论中所讨论的,代理设置仅适用于您使用的某些浏览器。

如果您希望Java使用相同的设置,您需要手动将其放入java网络设置(有关详细信息,请查看此网页)。

感谢Dacwe。 问题是,浏览器不使用任何系统代理,但它使用脚本设置代理自身。 因此,系统中没有任何代理,Java无法访问它们。