我编译了这个简单的程序,我找到了here
package com.stackoverflow.q2835505;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Test {
public static void main(String[] args) throws Exception {
String url = "https://stackoverflow.com/questions/2835505";
Document document = Jsoup.connect(url).get();
String question = document.select("#question .post-text").text();
System.out.println("Question: " + question);
Elements answerers = document.select("#answers .user-details a");
for (Element answerer : answerers) {
System.out.println("Answerer: " + answerer.text());
}
}
}
在终端中使用此命令:
javac -cp ./jsoup-1.10.2.jar Test.java
但是当我尝试运行它时我会这样做:
错误:无法找到或加载主类
我无法找到解决方案,问题出在哪里?感谢。
答案 0 :(得分:1)
您可能会遇到多个问题......
<强>的Javac 即可。可以肯定的是,像这样编译Java应用程序:
javac -cp ./jsoup-1.10.2.jar -d . Test.java
-d
选项确保已编译的类放在相应的包目录中:
com/stackoverflow/q2835505/Test.class
而不是当前目录。让check the man page只是为了确定(-d
选项):
设置类文件的目标目录。该目录必须已存在,因为
javac
未创建该目录。如果类是包的一部分,则javac
将类文件放在反映包名称的子目录中,并根据需要创建目录。如果
-d
选项未指定 ,则javac
会将每个类文件放在与生成它的源文件相同的目录中。
<强>爪哇即可。最后,使用:
运行它java -cp .:./jsoup-1.10.2.jar com.stackoverflow.q2835505.Test
这会使用您当前的目录(.
)和jsoup-1.10.2.jar
作为您的类路径来运行您的应用。当前目录是必需,因此java
会找到您的Test.class
以及JSoup jar。
有关java
命令语法的更多信息,请参阅this nice answer。