簡體   English   中英

盡管在MANIFEST中沒有找到類路徑,但是找不到類

[英]Class not found despite of classpath in MANIFEST

我有這個罐子:

/mybundle.jar/
    de/mybundle/myclass.class
    lib/mysql.jar
    META-INF/MANIFEST.MF

使用以下MANIFEST.MF

Manifest-Version: 1.0
Class-Path: lib/mysql.jar
Main-Class: de.mybundle.myclass

這對我來說似乎都是正確的,但是當我跑步時

java -jar mybundle.jar

當類試圖實例化其中一個MySQL-Library類時,我得到一個NoClassDefFoundException。

我做錯了什么?

您不能將jar文件捆綁在其他jar文件中。 清單中指定的路徑相對於您正在調用的jar文件的位置,因此在您的情況mybundle.jar對於mybundle.jar的位置。

您有兩種選擇:

  1. 將MySQL jar放在mybundle.jar之外的lib目錄中。
  2. 創建一個胖jar ,除了你自己的類之外,它還包含所需jar文件中的所有類。 這可以從EclipseMaven中獲得

如果你的mybundle.jar在c:/ foo中,那么你的mysql.jar就在c:/ foo / lib中。 清單中的Class-Path與您編寫它的方式相對於可執行JAR。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM