簡體   English   中英

從CMD運行JAR文件時,為什么會收到NoClassDefFoundError?

[英]Why am I receiving a NoClassDefFoundError when running a JAR file from CMD?

我將jar文件放在C:\\ temp下

在jar清單文件內,所有相關的jar文件都在lib文件夾下

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.8.0_111-b14 (Oracle Corporation)
Class-Path: lib/httpclient-4.2.1.jar lib/httpcore-4.2.1.jar lib/common s-logging-1.1.1.jar lib/httpclient-cache-4.2.5.jar lib/httpmime-4.2.5.jar lib/log4j-1.2.13.jar lib/log4j-api-2.0-beta9.jar lib/log4j-core-2.0-beta9.jar lib/gson-2.2.4-javadoc.jar lib/gson-2.2.4-sources.jar lib/gson-2.2.4.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: abc.service.Main

當我執行為

java -jar C:\temp\test.jar

我收到以下錯誤:

發生了JNI錯誤,請檢查您的安裝,然后重試。線程“主” java.lang.NoClassDefFoundError中的異常:org / apache / http / client / HttpClient

您假設Class-Path引用jar文件中的jar文件 那樣行不通。 “將類添加到JAR文件的類路徑”中

注意:Class-Path標頭指向本地網絡上的類或JAR文件,而不是JAR文件中的JAR文件或可通過Internet協議訪問的類。 要將JAR文件中的JAR文件中的類加載到類路徑中,必須編寫自定義代碼以加載這些類。 例如,如果MyJar.jar包含另一個名為MyUtils.jar的JAR文件,則不能使用MyJar.jar清單中的Class-Path標頭將MyUtils.jar中的類加載到類路徑中。

因此,解壓縮jar文件使其與您的主jar文件一起。

暫無
暫無

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

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