让互联网无法访问'与sdkman

时间:2016-05-12 13:51:44

标签: sdkman

互联网工作正常,但我从sdkman收到此错误:

public abstract class BASE<T> where T:BASE<T>
{
    public BASE() {}
    public abstract T clone();
}


public class CHILD : BASE<CHILD>
{

    public CHILD() : base() {}
    public override CHILD clone()
    {
        return new CHILD();
    }
}

我的DNS似乎解决得非常慢。我可以ping,但分辨率大约需要7秒。这会导致sdkman超时吗?

有什么想法?调试的下一步是什么?谢谢!

7 个答案:

答案 0 :(得分:8)

您需要在配置文件中设置curl connect timeoutcurl max time,该文件在以下路径中分配:

 $YOUR_HOME/.sdkman/etc/config

以下内容:

  

sdkman_curl_connect_timeout = 20
  sdkman_curl_max_time = <强> 0

我希望这会对你有所帮助

答案 1 :(得分:1)

不同的应用程序使用不同的设置来建立网络连接。

在我的情况下(我使用Macbook Pro通过代理访问互联网),虽然我在系统偏好设置 - &gt;网络 - &gt;高级 - &gt;代理中设置了http和https代理。它确实对浏览器(Safari)生效,但对 sdkman 命令行工具无效。

我必须手动设置环境变量 http_proxy https_proxy

以下是我在Macbook Pro上设置的内容。

export http_proxy=http://proxy.abc.com:2500
export https_proxy=https://proxy.abc.com:2500

然后sdkman工作正常。

答案 2 :(得分:1)

好吧,我必须努力让SDKMAN让我下载软件包。我在公司代理后面,并使用CNTLM在本地计算机上解决该问题。

下载后,我必须在本地计算机上编辑sdkman文件。

下载也很重要。对我来说,在curl命令中添加-x http://localhost:3128是可行的。 我采取的步骤来安装Gradle:

  • 我下载了安装脚本并将其存储在/ tmp文件夹中。
  • 调整了安装脚本,并将额外的参数添加到curl命令。现在,我可以看到该工具已下载并安装在$ HOME / .sdkman目录中。
  • 之后,我必须运行sdkman-init.sh
  • 然后,我必须编辑.sdkman / src / sdkman-utils.sh,并在调用curl的每一行中添加-x选项。

成功了。请记住,关闭终端并在每个步骤之后打开一个新终端。

答案 3 :(得分:0)

看起来它现在正在运行......可能是服务器端的一个问题?或者也许是我身边的间歇性网络问题。无论如何,下一次危机......:)

答案 4 :(得分:0)

修复对我来说是两个步骤:

  1. sdkman-init.shchmod +x .sdkman/bin/sdkman-init.sh)上设置可执行位
  2. 修改~/sdkman/etc/config,设置
sdkman_curl_connect_timeout=30
sdkman_curl_max_time=50

别忘了重启终端。

答案 5 :(得分:0)

我遇到了同样的问题(在公司代理后面)。 就我而言,设置了 http_proxyhttps_proxy 环境变量。

有趣的是,大多数发行版不编译具有(相当不常见的)https_proxy 支持的 openssl,因此 curl 失败:

curl https://www.google.com
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to proxy.company.com:3128 

我的问题的解决方案:

unset https_proxy

取消设置 https_proxy 后,curl 和 sdkman(因为它们似乎使用 openssl)都开箱即用。

答案 6 :(得分:-1)

我遇到了这个问题。问题是我的互联网服务提供商阻止了它。您可以通过使用其他互联网或使用VPN来解决此问题。