最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IDEA對(duì)使用了第三方依賴jar包的非Maven項(xiàng)目打jar包的問(wèn)題(圖文詳解)

 更新時(shí)間:2020年07月03日 14:29:00   作者:木子雷  
這篇文章主要介紹了IDEA對(duì)使用了第三方依賴jar包的非Maven項(xiàng)目打jar包的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前言:

最近,遇到了一個(gè)問(wèn)題,都快把我整瘋了;這個(gè)問(wèn)題開(kāi)始是由 使用IDEA 對(duì) 非Maven項(xiàng)目進(jìn)行打 Jar 包 引起的;本來(lái)就是想簡(jiǎn)簡(jiǎn)單單的打個(gè) jar 包,并將使用的第三方依賴 jar 包打進(jìn)去,但是問(wèn)題就出現(xiàn)在了項(xiàng)目中依賴的第三方 jar 包( bcprov-jdk15on-1.54.jar )存在簽名,那在打包過(guò)程中會(huì)把 簽名 破壞掉,導(dǎo)致在使用打好的jar包時(shí)報(bào)錯(cuò): JCE cannot authenticate the provider BC 。

注意:如果依賴的第三方j(luò)ar包不存在簽名的話,直接按照下面的 打包方式 就能成功打包;

IDEA打jar包:

使用 IDEA 將項(xiàng)目打成jar包,并將使用的第三方依賴jar包打進(jìn)去;

1、首先看下打包的項(xiàng)目工程:

2、具體的打包流程:2.1、首先配置 MANIFEST.MF

首先需要配置 MANIFEST.MF , 因?yàn)檫@會(huì)在打包時(shí)使用的;

首先新建一個(gè)文件夾,文件夾取名為 META-INF , 在文件夾META-INF中創(chuàng)建文件,取名為 MANIFEST.MF ,然后需要配置下 MANIFEST.MF 文件的內(nèi)容; 內(nèi)容如下:

Manifest-Version: 1.0
Class-Path: lib/log4j-core-2.0-rc1.jar lib/bcprov-jdk15on-1.54.jar 
Main-Class: com.lyl.Test.PackageTest

注意上面 MANIFEST.MF 配置文件中的內(nèi)容在填寫(xiě)時(shí),需要注意幾點(diǎn):

1、Class-Path 在 冒號(hào)后面需要有 一個(gè)空格 ;然后后面跟隨的每個(gè)依賴包之間也必須有 一個(gè)空格 ,并且最后一個(gè)依賴后面也必須要存在 一個(gè)空格 ;

2、Main-Class這一行后面需要跟 兩個(gè)空行??;

最后簡(jiǎn)單說(shuō)下,MANIFEST.MF 在打包時(shí)起到什么作用呢:

Main-Class 指定程序的運(yùn)行入口,這樣可以直接用java -jar xxx.jar來(lái)運(yùn)行程序。

Class-Path 指定依賴jar包的路徑,class loader類加載器會(huì)依據(jù)這個(gè)路徑來(lái)搜索依賴的class。

2.2、具體配置過(guò)程

下面將進(jìn)行打包前的一些配置,需要將這些配置好后,才能進(jìn)行打包的;

(1)、

(2)、

(3)、

(4)、

(5)、

(6)、

(7)、

(8)、

2.3、進(jìn)行打包

上面將打包前的一些配置完成后,最后就可以直接進(jìn)行打包了;

(1)、

(2)、

end, IDEA 打jar包流程已經(jīng)完成了;但是打好的jar包,直接使用時(shí),可能還會(huì)存在問(wèn)題,再聊聊會(huì)出現(xiàn)的問(wèn)題。

擴(kuò)展: 如果想在打jar包時(shí),將依賴的第三包jar包打進(jìn)去的話,使用IDEA可能會(huì)比較繁瑣,但是使用 Eclipse 會(huì)比較方便快捷,直接使用 Eclipse 的 fat jar 插件 進(jìn)行打包,十分方便的。

3、打好的jar包在使用時(shí)可能存在的問(wèn)題:3.1、報(bào)錯(cuò):Invalid signature file digest for Manifest main attributes

將打好的jar包引用到另一個(gè)項(xiàng)目中,可能會(huì)報(bào)錯(cuò):Invalid signature file digest for Manifest main attributes ;

這就是因?yàn)?打好的jar包中 存在多余的.SF文件,可以將jar包中后綴為 .SF文件刪除就可以了。

3.2、報(bào)錯(cuò):JCE cannot authenticate the provider BC

在項(xiàng)目中使用打好的jar包,可能會(huì)報(bào)錯(cuò):JCE cannot authenticate the provider BC ;

這是因?yàn)?之前打包時(shí),項(xiàng)目中依賴的第三方j(luò)ar包中有存在 簽名 的jar包(bcprov-jdk15on-1.54.jar);在將其打進(jìn)jar包時(shí),就會(huì)將簽名破壞掉,導(dǎo)致在使用這個(gè)簽名被破壞的包中的類時(shí),就會(huì)報(bào)錯(cuò)了。

3.3、解決方案:3.3.1、將簽名包放一份到本地JDK中(不推薦)

此方案需要將簽名包(bcprov-jdk15on-1.54.jar)放到 JDK 中的 jre 中的lib文件夾下的 ext 文件夾中;

例如:本地安裝的JDK路徑為 E:\Java\jdk1.8.0_60\jre\lib\ext ; 將簽名包放到這里一份 。

但是此解決方案不推薦,為什么不推薦呢?

因?yàn)槿绻愦虻膉ar包需要提供給別人的話,別人為了使用你的jar包,還需要改變自己的JDK,這個(gè)不太方便了。

3.3.2、打包時(shí),不講依賴簽名包打進(jìn)去(推薦)

打包時(shí),不將簽名包打進(jìn)去。打好包后,在項(xiàng)目中使用時(shí),需要將依賴的簽名包與打好的包一起放到 lib 文件夾下,這樣在使用簽名包時(shí),就會(huì)使用與 打好的包在同級(jí)別下的 依賴的簽名包。

使用這種方案進(jìn)行解決時(shí),會(huì)比第一種方案方便很多,只是使用時(shí),除了引入打好的jar包外,還需喲再引入下使用到的簽名包( bcprov-jdk15on-1.54.jar ),并將其放到同一級(jí)別目錄下 即可。

打包時(shí),不將簽名包打進(jìn)去的實(shí)現(xiàn)步驟:(以 bcprov-jdk15on-1.54.jar 簽名包為例子)

(1)、首先是將 MANIFEST.MF 配置文件進(jìn)行修改:

之前:存在簽名包的

Manifest-Version: 1.0
Class-Path: lib/log4j-core-2.0-rc1.jar lib/bcprov-jdk15on-1.54.jar 
Main-Class: com.lyl.Test.PackageTest

修改:就是將簽名包 bcprov-jdk15on-1.54.jar 的依賴引入刪除

Manifest-Version: 1.0
Class-Path: lib/log4j-core-2.0-rc1.jar
Main-Class: com.lyl.Test.PackageTest

(2)、改完 配置文件后,再修改上面打包 具體配置步驟 中的 第(7) 中的引入依賴jar包,將簽名包刪除,然后再點(diǎn)擊OK,并重新打包 即可。如下圖:

之前,簽名包也引入了:

之后,去掉引入的簽名包:

重新打好的包,由于沒(méi)有將依賴的簽名包打進(jìn)去,那么如果使用到簽名包bcprov-jdk15on-1.54.jar的類時(shí),就會(huì)報(bào)《 類找不到 》怎么辦呢?

可以將打好的jar包 “ packagetest-1.0.0.jar ”, 與 簽名包 bcprov-jdk15on-1.54.jar 放到引用的項(xiàng)目的 lib 文件夾下(需要保證這兩個(gè)jar包在項(xiàng)目中的存放的位置在同一級(jí)別 即可); 然后在使用時(shí)就會(huì)使用 外部引用的 依賴簽名包中的類了,不會(huì)報(bào) 類找不到

并且沒(méi)有破壞簽名包的簽名,所以也不會(huì)報(bào)簽名被破壞的錯(cuò)了:JCE cannot authenticate the provider BC

end, 暫時(shí)只找到了這兩種解決方案,感覺(jué)這都不是最優(yōu)的解決方案,但是實(shí)在找不到了,唉,如果有知道的朋友,可以告訴下嗎? 謝謝啦!

到此這篇關(guān)于IDEA對(duì)使用了第三方依賴jar包的非Maven項(xiàng)目打jar包的文章就介紹到這了,更多相關(guān)idea 第三方依賴jar包非Maven項(xiàng)目打jar包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot?web靜態(tài)資源映射實(shí)現(xiàn)步驟詳解

    SpringBoot?web靜態(tài)資源映射實(shí)現(xiàn)步驟詳解

    在springBoot中的靜態(tài)資源的映射是通過(guò)SpringMVC中的resourceHttpRequestHandler來(lái)進(jìn)行實(shí)現(xiàn)的。在該請(qǐng)求映射器中默認(rèn)規(guī)定了,SpringBoot會(huì)將classPath或者ServletContext下的/static?(/public、/resources?或?/META-INF/resources)目錄中,存放靜態(tài)資源
    2022-09-09
  • java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽(tīng)器之匿名內(nèi)部類)

    java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽(tīng)器之匿名內(nèi)部類)

    這篇文章主要介紹了java-RGB調(diào)色面板的實(shí)現(xiàn)(事件監(jiān)聽(tīng)器之匿名內(nèi)部類),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程

    Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程

    這篇文章主要介紹了Springboot+Flowable?快速實(shí)現(xiàn)工作流的開(kāi)發(fā)流程,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java 異常的知識(shí)整理

    Java 異常的知識(shí)整理

    這篇文章主要介紹了Java 異常的知識(shí)整理的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 最全MyBatis核心配置文件總結(jié)(收藏)

    最全MyBatis核心配置文件總結(jié)(收藏)

    這篇文章主要介紹了最全MyBatis核心配置文件總結(jié)(收藏),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • springboot運(yùn)行時(shí)新增/更新外部接口的實(shí)現(xiàn)方法

    springboot運(yùn)行時(shí)新增/更新外部接口的實(shí)現(xiàn)方法

    這篇文章主要介紹了springboot運(yùn)行時(shí)新增/更新外部接口的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java8方法引用及構(gòu)造方法引用原理實(shí)例解析

    Java8方法引用及構(gòu)造方法引用原理實(shí)例解析

    這篇文章主要介紹了Java8方法引用及構(gòu)造方法引用原理實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • idea新建springboot項(xiàng)目pom文件報(bào)錯(cuò)問(wèn)題及解決

    idea新建springboot項(xiàng)目pom文件報(bào)錯(cuò)問(wèn)題及解決

    這篇文章主要介紹了idea新建springboot項(xiàng)目pom文件報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • java實(shí)現(xiàn)文件上傳功能

    java實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • Java文件(io)編程_基于File類的基本用法(必看篇)

    Java文件(io)編程_基于File類的基本用法(必看篇)

    下面小編就為大家?guī)?lái)一篇Java文件(io)編程_基于File類的基本用法(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論

莱西市| 崇义县| 六安市| 富蕴县| 宾阳县| 景谷| 满洲里市| 永吉县| 东光县| 志丹县| 峨山| 克拉玛依市| 老河口市| 阿坝县| 永泰县| 航空| 石景山区| 水富县| 新沂市| 天柱县| 连云港市| 河东区| 兖州市| 三门峡市| 伊川县| 铁力市| 大英县| 微博| 宜黄县| 澄城县| 衡南县| 天台县| 越西县| 措勤县| 承德县| 仪征市| 麦盖提县| 乌审旗| 新余市| 巩义市| 玉龙|