【问题标题】:Included Jsoup library will compile but not run包含的 Jsoup 库将编译但不运行
【发布时间】:2014-05-31 18:32:31
【问题描述】:

我正在尝试在 Java 中探索网络抓取,并且刚刚从一个非常基本的 Jsoup 程序开始。我很确定我正在做的事情存在某种路径问题。我尝试了不同的变体,只是为了让它工作,通过将库包含在与我的源文件相同的目录中来简化过程(在我弄清楚发生了什么的同时简化路径)。这是我一直在做的事情和输出:

javac -cp jsoup-1.7.3.jar URLParse.java

上面的编译没有错误(当我将jar放在自己的文件夹中并指定路径时它也编译得很好),当我尝试运行程序时会发生以下情况:

java -cp jsoup-1.7.3.jar URLParse.java
Exception in thread "main" java.lang.NoClassDefFoundError: URLParse/java
Caused by: java.lang.ClassNotFoundException: URLParse.java
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
Could not find the main class: URLParse.java. Program will exit.

以下是有帮助的代码:

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

import java.io.IOException;

public class URLParse{

   public static void main(String[] args){


      String URL = "http://www.google.com";

      try{

         Document doc = Jsoup.connect(URL).get();
         System.out.println("Ok here");
         String title = doc.title();

         System.out.println(title);
      } catch (IOException e){
         e.printStackTrace();
      }

   }

}

感谢您的任何帮助或建议。

【问题讨论】:

    标签: java jsoup noclassdeffounderror


    【解决方案1】:

    我认为这里的问题是您没有在类路径变量中包含包含主类代码的目录。

    java -cp jsoup-1.7.3.jar URLParse.java
    

    应该是

    java -cp .:jsoup-1.7.3.jar URLParse
    

    在 Mac/Linux 和

    上
    java -cp .;jsoup-1.7.3.jar URLParse
    

    在 Windows 上。请注意,您没有在尝试运行的类中包含 .java。

    Information taken right from this.

    【讨论】:

    • 嗨 Hallfox,感谢您的回复。我正在运行 Linux,我尝试了你的建议,它已经死了。
    【解决方案2】:

    假设你有类似的目录结构:

    并且您正在尝试运行您需要的 URLParse 课程:

    java -classpath testPackage/jsoup-1.7.2.jar:. testPackage.URLParse
    

    更多详情请参考Java Glossary

    【讨论】:

    • 您好 Sandeep,感谢您抽出宝贵时间回复。它现在正在执行。感谢您发布 Java 词汇表链接,我会看一下它,希望能更好地掌握使用类路径。
    猜你喜欢
    • 2017-11-04
    • 2017-03-28
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多