我试图在Java中探索webscraping,我刚刚开始使用一个非常基本的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();
}
}
}
感谢您提供任何帮助或建议。
答案 0 :(得分:1)
我认为这里的问题是你没有在classpath变量中包含带有主类代码的目录。
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。
答案 1 :(得分:0)
假设您有类似的目录结构:
并且您正在尝试运行您需要的URLParse
课程:
java -classpath testPackage/jsoup-1.7.2.jar:. testPackage.URLParse
有关详细信息,请参阅 Java Glossary