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

idea中將單個(gè)java類(lèi)導(dǎo)出為jar包文件的方法

 更新時(shí)間:2018年09月16日 09:12:30   作者:等你歸去來(lái)  
這篇文章主要給大家介紹了關(guān)于idea中將單個(gè)java類(lèi)導(dǎo)出為jar包文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

idea作為一個(gè)java開(kāi)發(fā)的便利IDE工具,個(gè)人是比較喜歡的,今天來(lái)探索個(gè)小功能: 導(dǎo)出單個(gè)類(lèi)文件為jar包!

JAR文件的全稱(chēng)是Java Archive File,意思就是Java檔案文件。通常JAR文件是一種壓縮文件,與常見(jiàn)的ZIP壓縮文件兼容,同城也被稱(chēng)為JAR包。JAR文件與zip文件的去區(qū)別就是在JAR文件中默認(rèn)包含了一個(gè)名為META-INF/MANIFEST.MF的清單文件,這個(gè)清單文件是在生成JAR文件時(shí)系統(tǒng)自動(dòng)創(chuàng)建的。

當(dāng)開(kāi)發(fā)了一個(gè)應(yīng)用程序后,這個(gè)應(yīng)用程序包含了很多類(lèi),如果需要把這個(gè)應(yīng)用程序提供給別人使用,通常會(huì)將這些類(lèi)文件打包成一個(gè)JAR文件,把這個(gè)JAR文件提供給別人使用。只要?jiǎng)e人在系統(tǒng)的CLASSPATH環(huán)境變量中添加這個(gè)JAR文件,則Java虛擬機(jī)就可以自動(dòng)在內(nèi)存中解壓這個(gè)JAR包,把這個(gè)JAR文件當(dāng)成一個(gè)路徑,在這個(gè)路徑中查找所于曉的類(lèi)或?qū)殞哟螌?duì)應(yīng)的路徑結(jié)構(gòu)。

使用JAR文件有以下好處:

  • 安全。能夠?qū)AR文件進(jìn)行數(shù)字簽名,只讓能夠識(shí)別數(shù)字簽名的用戶(hù)使用里面的東西。
  • 加快下載速度。在網(wǎng)上使用applet時(shí),如果存在多個(gè)文件而不打包,為了能夠把每個(gè)文件都下載到客戶(hù)端,需要為每個(gè)文件單獨(dú)建立一個(gè)HTTP連接,這是非常耗時(shí)的工作。將這些文件壓縮成一個(gè)JAR包,只要建立一個(gè)http連接就能夠一次下載所有的文件。
  • 壓縮。使文件變小,JAR的壓縮機(jī)制和zip完全相同
  • 包封裝。能夠讓JAR包里面的文件依賴(lài)于統(tǒng)一版本的類(lèi)文件。
  • 可一致性。JAR包作為內(nèi)嵌在Java平臺(tái)內(nèi)部處理的標(biāo)準(zhǔn),能夠在各種平臺(tái)上直接使用。

之所以有這種需求,就是某個(gè)類(lèi)文件獨(dú)立存在,但是需要將其導(dǎo)出為jar,供別人臨時(shí)使用,或者一些必要的場(chǎng)合,如: 編寫(xiě)一些特殊的agent使用。

不想為某個(gè)單個(gè)文件寫(xiě)一個(gè)項(xiàng)目,就想把代碼加載在某個(gè)項(xiàng)目的角落里,怎樣將該單個(gè)類(lèi)文件導(dǎo)出為jar包呢?

方法如下:

1. 寫(xiě)好功能工具類(lèi),如:

public class Hello {

 public static void main(String[] args) throws Exception {
 Hello hello = new Hello();
 hello.sayHello("word. bingo!");
 }

 public void sayHello(String word) {
 System.out.println("hello, " + word);
 }
}

2. 點(diǎn)擊idea中的 File -> Project Structure... -> Artifacts -> 添加+ -> JAR -> Empty

填寫(xiě)好jar name, 添加好對(duì)應(yīng)的資源文件。先創(chuàng)建好與包名對(duì)應(yīng)的文件目錄結(jié)構(gòu)(目錄結(jié)構(gòu)不一致可能導(dǎo)致后續(xù)使用jar文件時(shí)報(bào)class not found exception),圖解如下:

最后,加載編寫(xiě)出的單個(gè)類(lèi)文件(編譯后的 .class 文件,一般在 target 目錄下),如下圖打開(kāi)添加file, 找到文件。

加載后,文件如下,設(shè)置好jar文件的輸出目錄,點(diǎn)擊ok關(guān)閉對(duì)話(huà)框:

3. 編寫(xiě)清單文件 MANIFEST.MF,如有必要,再將打開(kāi) Project Structure...

點(diǎn)擊 Create new ManiFest, 選擇位置,然后創(chuàng)建一個(gè)默認(rèn)的 MANIFEST.MF。 然后關(guān)閉對(duì)話(huà)框,進(jìn)入自行編輯。

一些基礎(chǔ)參數(shù)可以直接在上面填寫(xiě):

MANIFEST.MF格式如下:

Manifest-Version: 1.0
Premain-Class: com.youge.api.Hello

4. 導(dǎo)出jar文件,先運(yùn)行 build(將java文件編譯到class中,從而例jar文件可更新), 再導(dǎo)出:

導(dǎo)出,點(diǎn)擊build后完成導(dǎo)出:

如此,到之前設(shè)置的目錄下,就可以找到導(dǎo)出的jar文件了。

測(cè)試運(yùn)行jar文件:

java -jar hello.jar

這里只是個(gè)簡(jiǎn)單的生成jar的方式,個(gè)人覺(jué)得還是挺實(shí)用的!

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Java?Lombok實(shí)現(xiàn)手機(jī)號(hào)碼校驗(yàn)的示例代碼

    Java?Lombok實(shí)現(xiàn)手機(jī)號(hào)碼校驗(yàn)的示例代碼

    手機(jī)號(hào)碼校驗(yàn)通常是系統(tǒng)開(kāi)發(fā)中最基礎(chǔ)的功能之一,本文主要介紹了Java?Lombok實(shí)現(xiàn)手機(jī)號(hào)碼校驗(yàn)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Spring?Boot日志SLF4J和Logback示例詳解

    Spring?Boot日志SLF4J和Logback示例詳解

    這篇文章主要介紹了Spring?Boot日志SLF4J和Logback詳解,Logback相比于Log4j,性能提高了10倍以上的性能,占用的內(nèi)存也變小了,并且文檔十分詳細(xì),推薦使用Slf4j+Logback,需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)的百度語(yǔ)音識(shí)別功能示例

    Java實(shí)現(xiàn)的百度語(yǔ)音識(shí)別功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的百度語(yǔ)音識(shí)別功能,較為簡(jiǎn)明扼要的分析了Java調(diào)用百度語(yǔ)音接口相關(guān)操作步驟,并給出了具體的語(yǔ)音識(shí)別用法代碼示例,需要的朋友可以參考下
    2018-08-08
  • Spring的UnsatisfiedDependencyException異常的解決

    Spring的UnsatisfiedDependencyException異常的解決

    在使用Spring框架開(kāi)發(fā)應(yīng)用程序時(shí),我們經(jīng)常會(huì)遇到各種異常,本文主要介紹了Spring的UnsatisfiedDependencyException異常的解決,感興趣的可以了解一下
    2023-11-11
  • Spring Security注冊(cè)過(guò)濾器注意事項(xiàng)詳解

    Spring Security注冊(cè)過(guò)濾器注意事項(xiàng)詳解

    前兩天和小伙伴聊了 Spring Security+JWT 實(shí)現(xiàn)無(wú)狀態(tài)登錄,然后有小伙伴反饋了一個(gè)問(wèn)題,感覺(jué)這是一個(gè)我們平時(shí)寫(xiě)代碼容易忽略的問(wèn)題,所以本文給大家介紹了Spring Security注冊(cè)過(guò)濾器注意事項(xiàng),需要的朋友可以參考下
    2024-06-06
  • Java實(shí)現(xiàn)curl調(diào)用帶參數(shù)接口方法

    Java實(shí)現(xiàn)curl調(diào)用帶參數(shù)接口方法

    本文主要介紹了Java實(shí)現(xiàn)curl調(diào)用帶參數(shù)接口方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • Java AQS中CyclicBarrier回環(huán)柵欄的使用

    Java AQS中CyclicBarrier回環(huán)柵欄的使用

    這篇文章主要介紹了Java中的 CyclicBarrier詳解,CyclicBarrier沒(méi)有顯示繼承哪個(gè)父類(lèi)或者實(shí)現(xiàn)哪個(gè)父接口, 所有AQS和重入鎖不是通過(guò)繼承實(shí)現(xiàn)的,而是通過(guò)組合實(shí)現(xiàn)的,下文相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2023-02-02
  • 基于Redis分布式鎖Redisson及SpringBoot集成Redisson

    基于Redis分布式鎖Redisson及SpringBoot集成Redisson

    這篇文章主要介紹了基于Redis分布式鎖Redisson及SpringBoot集成Redisson,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小小伙伴可以參考一下
    2022-09-09
  • MyBatis攔截器動(dòng)態(tài)替換表名的方法詳解

    MyBatis攔截器動(dòng)態(tài)替換表名的方法詳解

    因?yàn)槲覀兂志脤涌蚣芨嗟厥褂肕yBatis,那我們就借助于MyBatis的攔截器來(lái)完成我們的功能,這篇文章主要給大家介紹了關(guān)于MyBatis攔截器動(dòng)態(tài)替換表名的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 通過(guò)Docker啟動(dòng)Solace并在Spring?Boot通過(guò)JMS整合Solace的操作方法

    通過(guò)Docker啟動(dòng)Solace并在Spring?Boot通過(guò)JMS整合Solace的操作方法

    本文將介紹如何在Spring中使用,雖然代碼使用的是Spring Boot,但并沒(méi)有使用相關(guān)starter,跟Spring的整合一樣,可通用,JMS是通過(guò)的消息處理框架,可以深入學(xué)習(xí)一下,不同的MQ在JMS的整合上都是類(lèi)似的,感興趣的朋友跟隨小編一起看看吧
    2023-01-01

最新評(píng)論

元阳县| 威信县| 富裕县| 咸丰县| 汪清县| 长治市| 洪洞县| 治多县| 湟源县| 郴州市| 喜德县| 本溪市| 布拖县| 开原市| 英山县| 南开区| 读书| 武穴市| 怀化市| 斗六市| 兴国县| 宁都县| 凤城市| 海兴县| 白城市| 济源市| 崇明县| 临邑县| 金乡县| 仁怀市| 祁门县| 中牟县| 宁德市| 建昌县| 仪陇县| 祁阳县| 石家庄市| 普格县| 介休市| 青河县| 富源县|