【问题标题】:java run include classpath from terminaljava运行包括来自终端的类路径
【发布时间】:2016-01-11 22:33:47
【问题描述】:

练习使用jsoup。我从终端命令行使用 linux 和程序。在一个文件夹中,我有 jsoup-1.8.3.jar 和一个包含基本代码的 java 文件,用于获取标题并将其显示回来。供参考,这里是代码:

import java.io.IOException;  
import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;
class WebCrawler{

     public static void main( String[] args ) throws IOException{  
            Document doc = Jsoup.connect("http://www.javatpoint.com").get();  
            String title = doc.title();  
            System.out.println("title is: " + title);  
     }  

}

我想我已经能够使用命令编译类文件了:

javac -cp "jsoup-1.8.3.jar" WebCrawler.java

不会返回任何错误。

但是,当我尝试我认为应该做的事情时:

java -cp "jsoup-1.8.3.jar" WebCrawler

然后它会说“错误:无法找到或加载主类 WebCrawler ”。尝试在信息中添加标签时,我发现当我按下 W 和标签时输入 jar 文件后,它不会找到 WebCrawer 类文件,该文件与 jar 文件和源文件位于同一文件夹中。

这应该是一个基本的修复,我打错了什么?

【问题讨论】:

  • java -cp jsoup-1.8.3.jar:. WebCrawler。当前目录需要在类路径中,因为您的类在默认包中,并且类文件在当前目录中。但是,您不应该在同一目录中包含源文件、类文件和库。稍微整理一下你的项目:src 下的源文件,classes 下的类文件,lib 下的库。
  • 终于想通了。为了将来参考我做了“javac -cp jsoup-1.8.3.jar:WebCrawler.java”然后是“java -cp jsoup-1.8.3.jar:WebCrawler”。 @JB Nizet - 谢谢,我只是在你发帖的同时想通了

标签: java linux terminal jsoup


【解决方案1】:

JB Nizet提出的答案

java -cp jsoup-1.8.3.jar:. WebCrawler

当前目录需要在类路径中,因为你的类在默认包中,而类文件在当前目录中。但是,您不应该在同一目录中包含源文件、类文件和库。稍微整理一下项目:src 下的源文件,classes 下的类文件,lib 下的库。

【讨论】:

    猜你喜欢
    • 2014-04-06
    • 2015-04-13
    • 2014-10-19
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多