提供节点名或服务名,或未知 Java

Jay*_*266 6 java

最近我尝试运行我的 Java 项目,每当我运行它并将其打开到我得到的服务器地址时:

\n\n
     Unable to determine host name\njava.net.UnknownHostException: Caused by: java.net.UnknownHostException: (USERNAME): nodename nor servname provided, or not known\n
Run Code Online (Sandbox Code Playgroud)\n\n

其中 USERNAME 是我的用户名。我相信这与我的 /etc/hosts 文件有关。我尝试将其修改为:

\n\n
##\n##\n# Host Database\n#\n# localhost is used to configure the loopback interface\n# when the system is booting. Do not change this entry.\n##\n127.0.0.1 \xc2\xa0 \xc2\xa0 \xc2\xa0 localhost\n255.255.255.255 broadcasthost\n::1 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 \xc2\xa0 localhost\nfe80::1%lo0 \xc2\xa0 \xc2\xa0 localhost\n
Run Code Online (Sandbox Code Playgroud)\n\n

每次我找不到服务器时,它仍然会出现相同的错误。我已经被困在这个问题上有一段时间了,大部分时间都花在修改主机文件上,但没有运气。关于如何解决这个问题有什么想法吗?

\n\n

我也尝试删除我的项目并重新克隆它,但仍然出现相同的错误。

\n\n

最终,我认为这与无法与主机连接有关。

\n

小智 0

我也遇到过同样的问题。可能有几个问题导致了这种情况。以下是最有可能的一些:

  1. URL 和主机名——如果 URL 中有任何拼写错误
  2. DNS 解析 - 对于您尝试访问的主机名,DNS 解析失败,您可以尝试从终端 ping 主机名以查看其是否解析。
  3. 代理配置——如果您尝试访问任何受保护的 API 或 URL,则必须正确设置代理配置。

对我来说,问题在于代理配置,因为我试图通过代码访问的 URL 受到 Org 保护,并且需要 VPN 才能访问它,所以我添加了代码来设置它,然后解析了主机 IP,没有任何问题。

使用以下命令设置代理的示例代码java.net

System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
Run Code Online (Sandbox Code Playgroud)

我为两者添加了HTTP代理HTTPS

        System.setProperty("http.proxyHost", "127.0.0.1");
        System.setProperty("http.proxyPort", "2006");

        System.setProperty("https.proxyHost", "127.0.0.1");
        System.setProperty("https.proxyPort","2006");
Run Code Online (Sandbox Code Playgroud)