为什么这个java链接检查器代码不能编译?

为什么这个java链接检查器代码不能编译?,java,hyperlink,broken-links,Java,Hyperlink,Broken Links,我已经在SO上看到了这个问题。如果有更多这样的问题,我错过了,我道歉 我们需要以一种非常简单且可编写脚本的方式找到断开的链接,这样我们就可以记录断开的链接。我发现了一个用java编写的代码,可以完全满足我的需要,我的基础知识让我可以编译它,但每次我都会出错。我想这里也许有人能告诉我为什么代码不能编译 代码如下: import java.net.HttpURLConnection; import java.net.URL; class links { private static boolean

我已经在SO上看到了这个问题。如果有更多这样的问题,我错过了,我道歉

我们需要以一种非常简单且可编写脚本的方式找到断开的链接,这样我们就可以记录断开的链接。我发现了一个用java编写的代码,可以完全满足我的需要,我的基础知识让我可以编译它,但每次我都会出错。我想这里也许有人能告诉我为什么代码不能编译

代码如下:

import java.net.HttpURLConnection;
import java.net.URL;
class links
{

private static boolean isLive(String link) {
    HttpURLConnection urlConnection = null;
    try {
      URL url = new URL(link);
      urlConnection = (HttpURLConnection) url.openConnection();
      urlConnection.setRequestMethod("HEAD");
      urlConnection.connect();
      String redirectLink = urlConnection.getHeaderField("Location");
      if (redirectLink != null && !url.equals(redirectLink)) {
        return isLive(redirectLink);
      } else {
        return urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK;
      }
    } catch (Exception e) {
      return false;
    } finally {
      if (urlConnection != null) {
        urlConnection.disconnect();
      }
    }
  }

  public static void main(String[] args) {
    System.out.println(isLive("http://www.fakelink.net"));
  }
}

谢谢你的回答。我把编译的代码放在这里,以备将来参考。

代码似乎是正确的。可能您尚未导入所需的软件包。如果您可以发布您收到的编译器错误,这将有所帮助。

代码似乎正确。可能您尚未导入所需的软件包。如果您可以发布您收到的编译器错误,这将有所帮助。

您需要导入正确的软件包。在这种情况下,您应该在文件顶部显示以下内容:

import java.net.HttpURLConnection;
import java.net.URL;
我还收到关于以下代码段的编译器警告:

 && !url.equals(redirectLink)
它试图将url(一个url)等同于重定向链接(一个字符串)。在Java中,当发生这种情况时,它会自动比较字符串值,而toString实际上给出了您想要的内容。更准确地说,在作者代码中,我将上述代码更改为:

 && !url.toExternalForm().equals(redirectLink)

注意:在netbeans中,您只需右键单击并选择“修复导入”选项(或按Ctrl+Shift+I),它将尝试查找您当前使用的正确软件包并自动插入导入语句。

您需要导入正确的软件包。在这种情况下,您应该在文件顶部显示以下内容:

import java.net.HttpURLConnection;
import java.net.URL;
我还收到关于以下代码段的编译器警告:

 && !url.equals(redirectLink)
它试图将url(一个url)等同于重定向链接(一个字符串)。在Java中,当发生这种情况时,它会自动比较字符串值,而toString实际上给出了您想要的内容。更准确地说,在作者代码中,我将上述代码更改为:

 && !url.toExternalForm().equals(redirectLink)

注意:在netbeans中,您只需右键单击并选择“修复导入”选项(或按Ctrl+Shift+I),它将尝试查找您当前使用的正确软件包并自动插入导入语句。

非常感谢。我一大早就去做。谢谢,非常感谢。我一大早就去做。谢谢。投票支持用正确的解决方案更新代码。投票支持用正确的解决方案更新代码。