【发布时间】:2016-08-19 05:28:10
【问题描述】:
我在搞乱代理设置和 JVM。显然,OS X(在我的例子中是 Maveics)是唯一一个 JVM(截至今天为 1.8_92)自动应用系统首选项中设置的任何代理的系统。我测试过的任何其他系统(带有 openbox 的 Arch Linux,没有 Gnome/KDE,Windows 7,一些最新的 Debian 版本)都不会这样做,要么必须使用'-Djava.net.useSystemProxies' (适用于 Windows),或使用 '-Dhttp.proxyHost=...' 等显式设置代理。
我很确定应用了 OS X 系统代理,因为我在首选项中使用了一个特殊的“标记”代理主机名;当我更改主机名时,JVM 会将其代理设置更改为新的主机名(我需要重新启动 JVM,但在 JVM 运行时它不会更改,但没关系)。
我觉得这种行为很酷(显然,代理在 OS X 上开箱即用,这在我使用其他系统遇到大量问题后令人耳目一新),但似乎没有在任何地方记录。
有人可以确认是 OS X 上的 JVM 在施展魔法吗?它发生在哪里,由谁发生?我可以想象多种方式来实现这一点:Mac 的 JVM 可能很聪明,并且知道如何查找 OS X 的代理设置,或者每当网络设置发生变化时可能会写入一些配置文件,而 JVM 可以在启动时简单地读取它,或 ... 很多选项,但它实际上是如何工作的?
【问题讨论】: