OSX上JVM的Zombie http.proxyHost设置

我最近更改了网络并从OSX(Leopard)上的系统首选项/网络面板中删除了所有HTTP代理设置。 但是,现在每当我使用Eclipse时,Java HTTP代理系统属性似乎都是“自动”设置为使用我现在已经不存在的HTTP代理。

我在系统的任何地方都找不到直接引用此代理,删除并重新安装Eclipse,监视网络流量以排除任何代理自动配置,但此代理配置仍然存在于Mac OSX JVM上。

这是我在Eclipse配置细节中看到的:

http.proxyHost=zombie http.proxyPort=8080 https.proxyHost=zombie https.proxyPort=8080 

我可以通过在Eclipse首选项中手动配置没有主机名或端口的代理来解决这个问题,但这似乎并不坚持,僵尸系统代理最终会从死机中升起。

我个人认为这是某种Apple JVM错误 – 但是有人能告诉我如何在不重新安装操作系统的情况下杀死这些僵尸HTTP代理设置吗?

检查中的值

 /System/Library/Frameworks/JavaVM.framework/Home/lib/net.properties 

该文件中有注释表示只有在“系统偏好设置”中没有代理设置时才使用代理设置(来自net.properties)。 我想知道是否有更新你的net.properties文件,设置代理信息。 现在您没有代理设置(在“系统首选项”中),实际上正在使用net.properties中的值。

你重新安装了eclipse,但是你做到了:

  • 删除旧工作区?
  • 有任何环境变量,如:
    set JAVA_OPTS=%JAVA_OPTS% -Dhttp.proxyHost=host.example.com -Dhttp.proxyHost=7777
  • 观察你的eclipse的java进程,看它是否用以下选项执行:
    java -classpath ./bin -Dhttp.proxyHost=webcache.mydomain.com -Dhttp.proxyPort=8080 -Dhttp.noProxyHosts=”localhost|host.mydomain.com”

我想你们都是使命。 查看该属性的评论

 # MacOSX: # On MacOSX, setting java.net.useSystemProxies to true or false is a no-op. # Proxy settings from System Preferences are always used and they override any # settings specified in this file. Values from this file are only used if there # are no proxy settings in System Preferences. # See Release Notes for more information. java.net.useSystemProxies=false