Eclipse Kepler无法通过代理连接互联网

51

我成功地让Eclipse Juno连接到了互联网。为了达成这个目标,stackoverflow上有很多帖子。以下是其中一个链接: Eclipse not connecting to internet via proxy

今天我在我的Windows7电脑上安装了Eclipse Kepler。但是无法访问eclipse市场或安装新软件。 我使用的代理配置与我用于Eclipse Juno相同。Juno可以访问市场,但Kepler无法访问。 该代理使用NTLM身份验证。有没有人遇到过类似的问题?

目前还没有成功。我仍然在想为什么Juno可以连接而Kepler不能:-(


对我来说,Firefox 是问题所在,我将 Chrome 设置为默认浏览器后,无论是市场还是安装新软件都没有问题了。我没有更改网络连接参数。 - Nono
感谢您提出这个问题 :) 在谷歌上搜索了很久都没有找到答案,最终在Stack Overflow上找到了解决方案。 - Harry
10个回答

142

我也遇到了同样的问题,经过搜索发现了以下内容:

http://oakgreen.blogspot.jp/2011/10/eclipse-proxy-settings-bug-and.html

这篇文章指出不要设置SOCKS代理。我试了一下,连接成功了。 我按照以下步骤操作:

  1. 打开网络连接设置。
  2. 选择“手动”选项卡。
  3. 设置HTTP/HTTPS代理。
  4. 如果设置了SOCKS代理,请清除它。(选择SOCKS代理行并单击“清除”按钮)
  5. 重新启动Eclipse以应用这些设置。

1
谢谢你的回答。我必须为Eclipse Juno做这个。在那里它可以工作。但是对于Kepler来说不行。当您使用手动模式时,所有三个框都被选中(http,https,socks),我无法取消 SOCKS 的选择。但我已经清除了输入字段。 - cho
1
清除 SOCKS 配置后,三个复选框都被选中。正如您所提到的,尽管所有代理配置都已设置,但我仍然能够通过代理连接 Juno 和 Indigo。这真是一个谜... - mhanada
感谢您的回答!正如 cho 所提到的,我无法取消 SOCKS 代理,但使用“清除”按钮清除它就足以通过代理连接。 - Guru
3
请注意,在清除Socks设置后,需要重新启动Eclipse。 - user1708042
1
@user1708042,在Eclipse Luna中无需重新启动即可正常工作。顺便说一句,我发现这个特定的GUI(代理设置)设计非常糟糕。复选框完全令人困惑,一个明智的用户将面临奇怪的问题:“如果我按CLEAR并且所有复选框都被选中,这会清除所有协议的所有字段还是只清除我选择的那个?” - rbaleksandar
显示剩余4条评论

7

在我的情况下,我将它设置为“本机”设置,其中代理被启用。 (Internet Explorer-> Internetoptions-> Connections-> LAN-Settings-> Proxy Settings)。在那里禁用它并添加以下行到eclipse.ini文件中,一切都可以正常工作:

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient4
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.closeTimeout=3000
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.readTimeout=3000

2
+1 这就是解决方案。我写了类似的内容 http://stackoverflow.com/a/34204939/715269,并提供了参考。你也可以在这里加入它。 - Gangnus
由于我身处代理之后,我仍然包括了手动代理设置和身份验证。 - Fast Engy
我认为如果用户使用NTLM代理,则需要这个。 - dardo

7

我花了几个小时尝试使用mhanada建议的方法,虽然它是正确的,应该可以工作,但是与eclipse相关的默认安全存储阻止了我的代理凭据被保存。 我建议:要注意有关安全存储引发的异常。 在我的情况下,错误涉及无法连接到默认安全存储路径的远程位置。 在我的情况下,我只需通过“首选项>常规>安全>安全存储>内容>删除”来删除默认安全存储信息。


3

我的情况是在安装了Spring Tool Suite之后出现了问题。卸载它解决了这个问题。

版本:Kepler Service Release 1


2
另外需要注意的是:在我更改Windows密码后,Eclipse的Windows集成安全存储似乎变得无法访问,没有提醒。显然,这不仅使Eclipse“忘记”我的代理身份验证设置,还阻止它在我再次设置它们后存储凭据。我可以按照自己的方式进行配置,但只要我单击“确定”,它们就会再次消失。
对我来说,解决方案是转到“常规”>“安全性”>“安全存储”,并为Windows集成主密码提供程序单击“更改密码...”。当然,这将清除Eclipse先前存储的所有密码,但它让我拥有一个干净、可工作的安全存储,并允许我成功地设置和存储代理凭据。

2

我的一个朋友遇到了这个确切的问题(新机器上安装了全新的 Eclipse Kepler,计算机没有被防火墙或代理所限制)。事实证明,这是与 Java 7 更新 51 有关的问题,当我们使用 Java 6 JRE 运行 Eclipse 时,问题神奇地解决了。


1
因为eclipse使用的是JRE而不是JDK,所以发生了这种情况。
要强制eclipse使用特定的虚拟机,请编辑。
<eclipse_root>\eclipse.ini

在文件顶部添加这两行代码:
 -vm
 C:/Program Files/Java/jdk1.6.0_45/bin/javaw.exe

注意: 使用JRE的Eclipse会触发一个错误: java.lang.NoClassDefFoundError: javax/net/ssl/SSLSocket
 java.lang.NoClassDefFoundError: javax/net/ssl/SSLSocket
    at org.apache.http.impl.conn.SchemeRegistryFactory.createDefault(SchemeRegistryFactory.java:45)
    at org.apache.http.impl.client.AbstractHttpClient.createClientConnectionManager(AbstractHttpClient.java:294)
    at org.apache.http.impl.client.AbstractHttpClient.getConnectionManager(AbstractHttpClient.java:445)
    at org.apache.http.impl.client.AbstractHttpClient.createHttpContext(AbstractHttpClient.java:274)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:797)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at org.eclipse.ecf.provider.filetransfer.httpclient4.HttpClientFileSystemBrowser.runRequest(HttpClientFileSystemBrowser.java:263)
    at org.eclipse.ecf.provider.filetransfer.browse.AbstractFileSystemBrowser$DirectoryJob.run(AbstractFileSystemBrowser.java:69)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
 Caused by: java.lang.ClassNotFoundException: javax.net.ssl.SSLSocket cannot be found by org.apache.httpcomponents.httpclient_4.1.3.v201209201135
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:455)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
    at java.lang.ClassLoader.loadClass(Unknown Source)

谢谢,这真的在Kepler R2上救了我的一天。 - slash33

1

我曾经面临同样的问题,我的设置问题在于我使用了JDK,在重新指向JRE后,现在它可以完美地工作了。 代理设置- Windows->首选项->通用->网络连接。 Active Provider-本机,只需确保HTTP动态应该被选中,其余全部应该取消选中。

注意:以上说明仅在Kepler中经过尝试和测试。


0
你确定在“Active Provider”部分选择了“Manual”模式吗?如果没有,请再次转到“首选项/通用/网络连接”菜单并更改。我认为那个部分有点问题。

是的,这对于配置Eclipse Juno已经是必要的了。如上所述,我使用了相同的配置来配置Juno。 - cho

0
我曾经遇到过这个问题,我在eclipse中更改了代理设置和密码。 进入窗口->首选项->搜索“代理”,打开网络连接
选择活动提供程序为手动。 设置HTTP和HTTPS代理、系统用户名密码。(在我的机器上没有用户名和密码是无法工作的)
如果已设置,请清除SOCKS代理。 文件->重新启动

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接