1. 程式人生 > >解決java專案打jar包,專案中引用有其他jar包的問題

解決java專案打jar包,專案中引用有其他jar包的問題

大家都知道一個Java應用專案可以打包成一個jar,當然你必須指定一個擁有main函式的main class作為你這個jar包的程式入口。

具體的方法是修改jar包內目錄META-INF下的MANIFEST.MF檔案。

比如有個叫做test.jar的jar包,裡面有一個擁有main函式的main class:test.someClassName

我們就只要在MANIFEST.MF裡面新增如下一句話,就是執行的類的位置。

Main-Class: test.someClassName

然後我們可以在控制檯裡輸入java -jar test.jar即可以執行這個jar。

但是我們這個專案需要引用其他第三方的jar包,在eclipse裡面以專案jar包的形式引用了這個叫做some.jar的包,當時放在專案的lib子目錄下,最後專案打包時把這個some.jar也打進來了,但是用java -jar執行這個test.jar的時候報找不到Class異常,原因就是jar引用不到放在自己內部的jar包。

那怎麼辦?

執行時將其加入classpath的方式行不行?就是在執行jar的同時加入classpath引數:

java -classpath some.jar -jar test.jar

這種方式應該能解決問題吧,試一下,還是不行。

查了下資料,原來使用java -jar 命令執行jar包時classpath引數將會失效,所以,這種方式也不行。

那該怎麼引用其他的jar包呢,答案還是在這個目錄META-INF下的MANIFEST.MF檔案中。jar包引用其他jar包的資訊必須在這個檔案中宣告。

我們在MANIFEST.MF中新增如下程式碼:

Class-Path: lib/some.jar

lib是和test.jar同目錄的一個子目錄,把需要引用的jar包放到lib資料夾下,test.jar要引用的some.jar包就在這裡面。

然後測試執行,一切正常!

如果有多個jar包需要引用的情況:

Class-Path: lib/some.jar lib/some2.jar

每個單獨的jar用空格隔開就可以了。

相關推薦

解決java專案jar專案引用其他jar的問題

大家都知道一個Java應用專案可以打包成一個jar,當然你必須指定一個擁有main函式的main class作為你這個jar包的程式入口。 具體的方法是修改jar包內目錄META-INF下的MA

java專案打包成jarwar等 web工程打包成jar war

今天boss給我一段原始碼,讓匯出一個包來給現場,和現場溝通後,現場需要war包 我就開始了百度之旅,用網上普遍的方法,發現總是報 這總錯,後來google發現一個dos命令的方式,匯出 詳細請見原文:http://shuyangyang.blog.51ct

解決AndroidStudio從網路引入三方jar專案無法找到類問題

       AndroidStudio是一個神器的編譯器,感覺用起來會被各種坑,最近開發專案被它虐成狗。有的時候遇到各種奇奇怪怪的問題,讓你度娘都找不到答案。今天就講一下使用Studio從網路引入三方jar包檔案,明明程式碼引入全都有,但是就是找不到類,這個時候各種 Cl

Java POI對Excel操作專案開發遇到的問題解決方案

java POI官網地址,裡面有介紹POI的使用,以及各種例子程式碼:說下在專案開發中遇到的java操作Excel的棘手問題,以及解決方案:首先記下2007版及以上Excel版本(.xlsx)的檔案讀取、輸出程式碼:讀取:public static Workbook getT

maven倉庫jar專案無法找到jar

1、這種情況 可能是SVN down下來的不是最新的jar包可能會導致此問題。 這種就需要找到最新的jar  然後放到你本地maven倉庫 然後重新build下。如果還不行的話,就在就在這個地方 新增對應的jar然後應用一下,確定 應該就可以了

java動態載入指定的類或者jar反射呼叫其方法-涉及其他jar的類就報ClassNotFound問題分析及解決思路

       在這篇博文中java動態載入指定的類或者jar包反射呼叫其方法,介紹動態載入指定的類,當時我是拿URLClassLoader介紹的,當然可以自定義一個ClassLoader重寫對應的方

Android 將Android專案打包成aar檔案並在其他專案引用,打包成jar

首先說一下jar包和aar包有什麼區別? 1.打包之後生成的檔案地址: *.jar:庫/build/intermediates/bundles/debug(release)/classes.jar *.aar:庫/build/outputs/aar/l

Eclipse jar並且在win7 下執行jar檔案MANIFEST.MF檔案指定執行入口

1:為即將匯出的java專案新增一個檔案,檔名為:MANIFEST.MF     這個檔案可以定義jar包的一些引數,主要是jar檔案執行入口; 檔案內容為: Manifest-Version: 1.0 Class-Path: . Main-Class: test 將tes

maven依賴問題(找不到對應的專案引用報錯無法編譯)

解決maven中jar包依賴報錯問題方法(以idea開發為例): 1.比較繁瑣,不一定管用 1.1  定位到包路徑,圖中有紅線位置。 1.2 在本地maven倉庫查詢該檔案是否存在,如過存在,再檢視該檔案內容,是否將依賴jar包拉取到本地。 1.3 

gradle 添加jar依賴執行grade build時出現“程序不存在”問題

rep div epo 5.4 程序包 yun pan 引用 問題 引用的第三方依賴的包都找不到了 解決辦法 group‘com.suneony‘ version‘1.0.0‘ apply plugin:‘java‘ repositories { ma

maven工程依賴的jar在本地倉庫但是pom.xml文件卻報錯找不到jar

其中 -keep idt -i alt nexus handler reset and 問題描述: ? 第一時間查看本地倉庫,發現明明有卻還報錯 ? 解決方案: 查看錯誤依賴的_remote.repositories文件 ? 正常以來的的_remote.repositori

springboot聚合專案整合redis時候專案出現class找不到的問題

微服務之前也一直聽說過,但是一直沒有機會用。剛好,想把公司最近基於ssm的分散式專案,重構成微服務的。網上看了一些教程。話不多說就準備弄了。 整合後,發現專案一直報找不到redis對應的class檔案的問題。 解決過程: 1.1試過在manage的後臺,檢查了common的jar

maven工程依賴的jar在本地倉庫但是pom.xml檔案卻報錯找不到jar

例如:Missing artifact com.ibm.db2:db2jcc_license_cisuz:jar:10.1 但在我本地的倉庫中卻存在這個jar包,查找了很多的資料發現了兩種解決方法:第一種:    在eclipse中的window->show view-

現在沒有可用的軟體 *** 但是它被其它的軟體引用了 和 E: 無法定位軟體 ***問題解決(思路清晰乾貨)

問題現象 [email protected]virtual-machine:~/snort_src# apt-get install bison flex 正在讀取軟體包列表... 完成 正在分析軟體包的依賴關係樹 正在讀取狀態資訊... 完成

用AntJar--在Manifest引用Classpath(轉載)

在打jar包時,往往需要在manifest檔案中設定Class-Path,包含一些依賴的第三方jar包,使得以“java -jar xxx.jar”方式啟動的jar包能正確找到依賴的類。 網上大多演示使用打jar包的例子都是像這樣的: <target name="jar" >         

eclipse maven 明明已經引入了jar程式碼卻也沒提提示檢測不到jar

eclipse maven 明明已經引入了jar包,而且已經引入libraries目錄了,但程式碼中卻也沒提提示,檢測不到jar包 這是為什麼呢?廢話少說 我認為這是eclipse的一個bug,有兩個解決方法可以試試 方法一,將poem.xml的依賴包降級再升級; 方法

SSH整合MavenMaven常引用到的Jar

      在eclipse開發的時候要引入許多的jar包,但是當引入jar包增多的時候,或者版本升級的時候,這個時候下面的依賴包會發生衝突,這個排查工作是非常繁瑣的。因此使用Maven可以避免這些不必要的工作量。Maven的jar包配置檔案在pom.xml中,平時對SSh

13.9-全棧Java筆記:飛機遊戲實戰項目|Time|Plane|其他案例展示

java其他功能完成了基本的功能,這時候體驗度還是很一般。為了讓玩家更願意玩我們的遊戲,增加一些錦上添花的功能就很有必要。比如:遊戲計時功能、全網排名等等。 計時功能我們希望在玩遊戲時,增加計時功能,可以清晰的看到自己玩了多長時間,增加刺激性。這個功能的核心有兩點:1. 時間計算:當前時刻- 遊戲結束的時刻2

java方法重載是什麽 實際到底什麽意義 用處?請舉例

視頻 http dex [] sta 方法名 ret tro www. 7.3 方法重載(overload) (視頻下載) (全部書籍) 當幾個方法有相同的方法名,但參數個數不同或參數類型不同時,就涉及方法重載 方法重載有什麽意義呢?在公司裏編程,有時候一個

顫抖吧!阿里出了個不明覺厲的技術學習光PPT就2個G

PPT資料及視訊下載地址,詳見文中。 在浩大的計算機世界裡,作為一名普通程式設計師,你是否有過焦慮和迷茫? 我們內心崇拜技術,卻也對日新月異的技術抱有深深的恐懼。技術市場就像喜怒不定的老天爺,今天下個大資料雨,明天掛個人工智慧風。面對琳琅滿目的技術衝擊,我們時不時感到力不從心。幾年過去,除