[英]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.