java - 遇到找不到或无法加载主类错误的情况,有人可以帮助我修复该错误吗?我是Java新手

标签 java compiler-errors

我正在尝试编写一个程序来解析网页中的链接和其他媒体,并且遇到一个错误,当我尝试在编译后运行代码时,我不知道该如何处理 pop 窗口。

package org.jsoup.examples;

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.io.*;

public class ListLinks{

    public static void main(String[] args) throws IOException {
        Validate.isTrue(args.length == 1, "usage: supply url to fetch");
        String url = args[0];

        File file = new File("save.txt");

        file.createNewFile();

        FileWriter writer = new FileWriter(file);

        print(writer,"Fetching %s...", url);

        Document doc = Jsoup.connect(url).get();
        Elements links = doc.select("a[href]");
        Elements media = doc.select("[src]");
        Elements imports = doc.select("link[href]");

        print(writer,"\nMedia: (%d)", media.size());
        for (Element src : media) {
            if (src.tagName().equals("img"))
                print(writer," * %s: <%s> %sx%s (%s)",
                        src.tagName(), src.attr("abs:src"), src.attr("width"), src.attr("height"),
                        trim(src.attr("alt"), 20));
            else
                print(writer," * %s: <%s>", src.tagName(), src.attr("abs:src"));
        }

        print(writer,"\nImports: (%d)", imports.size());
        for (Element link : imports) {
            print(writer," * %s <%s> (%s)", link.tagName(),link.attr("abs:href"), link.attr("rel"));
        }

        print(writer,"\nLinks: (%d)", links.size());
        for (Element link : links) {
            print(writer," * a: <%s>  (%s)", link.attr("abs:href"), trim(link.text(), 35));
        }
    }


    private static void print(FileWriter writer,String msg, Object... args) {
        try
        {
            writer.write(String.format(msg,args));
        }
        catch(IOException e){
            System.out.println("something went wrong");
        }
    }

    private static String trim(String s, int width) {
        if (s.length() > width)
            return s.substring(0, width-1) + ".";
        else
            return s;
    }

}

我试图从命令行运行此命令,只是从网页中解析代码。

我通过编写以下程序来编译程序:
java -cp .;jsoup-1.9.2.jar ListLinks.java

然后我试图通过编写来运行它:
java -cp .jsoup-1.9.2.jar ListLinks

这给了我错误:
Error:could not find or load main class ListLinks

我该如何解决?

最佳答案

您应该在类名前面加上org.jsoup.examples包:

java -cp .jsoup-1.9.2.jar org.jsoup.examples.ListLinks

没有它,java会在空包(当前目录)中寻找此类,并且找不到它。

提供软件包时,java将在org/jsoup/examples目录中查找此类,您可以看到实际上该类文件(ListLinks.class)不在当前目录中。

关于java - 遇到找不到或无法加载主类错误的情况,有人可以帮助我修复该错误吗?我是Java新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37826258/

相关文章:

java - 在Eclipse中使用Jsoup时出错

java - 如何将值 ""hello""分配给字符串?

java - 在没有用户干预或 Intent 的情况下发送电子邮件

java - EmptyByteBuf出现在Netty服务器的Decoder链中

c# - 无法加载或创建VS 2015.1。项目。无法创建Visual C#2015编译器

android - 我收到错误 - 'Failed to install-write all apks'

C++ 错误 : no match for ‘operator-=’

java - 从 python 访问 JVM

c# - 编译器错误消息: CS0246: The type or namespace name could not be found

dom - 在React组件中关注输入字段–尝试创建引用时出现类型错误