2012-07-22 93 views
0

使用JSoup進行html抓取,我試圖編譯我的jar文件,以便我可以在Eclipse上運行此操作。如這裏看到的:(http://i.imgur.com/hLmeQ.jpg),我的jsoup jarfile被添加到外部庫。但是,在運行該程序時,我得到一個NoClassDefFoundError。這是有道理的,它沒有找到類文件,所以我反編譯並進行了雙重檢查:類文件位於導入的jar文件中。清單文件也是正確的。庫未正確導入java

我運行:Eclipse的:建立ID:20110916-0149,Java 7的更新5(64位)和jsoup 1.6.3,

而且我不使用Maven編譯。

+0

您是如何運行應用程序的? – Strelok 2012-07-22 15:56:11

+0

我正在使用bat文件運行它,使用我的網卡無法在Eclipse中運行這種類型的應用程序。 – 2012-07-22 16:18:20

回答

0

幽州:

清單文件是正確的了。

但你確定嗎?實際上你的jar文件的清單看起來像什麼?它應該是這個樣子:

Manifest-Version: 1.0 
Main-Class: yourMainClassPackage.YourMainClass 
Class-Path: jsoup-1.6.3.jar 

而且你確定你的jsoup jar文件位於相對正確的位置,它的路徑規範在清單?

+0

我的清單看起來完全如此(與Main-Class不同,ofc)。根據我在Manifest文件中看到的,一切都是正確的 – 2012-07-22 16:19:03

+0

@AmberKiernan:但是,jsoup jar文件相對於您創建的jar文件在哪裏? – 2012-07-22 16:24:11

+0

與jarfile位於同一文件夾 – 2012-07-22 16:34:35

0

的類不能被找到,因爲:

你的類路徑聲明Class-Path: jsoup-1.6.3.jar,但是從你的截圖中,jsoup-1.6.3.jarc:\Users\Amber\Desktop\New Folder,所以,除非你是從同一個文件夾中運行的JAR文件,它會不被發現。

解決方案:

  1. 運行從c:\Users\Amber\Desktop\New Folder
  2. 您的JAR - 或 - 複製jsoup-1.6.3.jar到同一個文件夾作爲JAR
  3. - 或 - 對所有的庫(如c一個共同的文件夾: \ java \ libs)並將此文件夾包含在CLASSPATH系統環境變量中