欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決

 更新時間:2023年07月21日 15:26:12   作者:柳鯤鵬  
這篇文章主要介紹了jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

jar的MANIFEST.MF配置Class-Path, java -classpath設(shè)置無效

比如說,

jar的MANIFEST.MF:

Manifest-Version: 1.0
Main-Class: office.Main
Class-Path: .?
? ?../lib/graphics.jar  

運(yùn)行:

java -classpath .;lib\video.jar -jar Office.jar

表面上看是對的,實(shí)際上因?yàn)閖ar中已經(jīng)包含了Class-Path,所以這樣的參數(shù)是無效的。吾怎么知道的?因?yàn)槲岜豢恿瞬胖馈?/p>

jar包下MANIFEST.MF中的 Class-Path 設(shè)置

1. 基本格式  

  • 屬性名稱+:+空格+屬性值  

2. 沒行最多72個字符,換行繼續(xù)必須以空格開頭  

3. 文件最后必須要有一個回車換行  

4. Class-Path 當(dāng)前路徑是jar包所在目錄,如果要引用當(dāng)前目錄下一個子目錄中的jar包,使用以下格式  

  • 子目錄/xxx.jar 子目錄/yyy.jar  
  • 技巧:多個jar包的引用,可以使用 .classpath 文件中classpathentry 的值  

5. 在任何平臺上路徑分割符都是 /,多個jar包引用以空格分開

Manifest-Version: 1.0
Agent-Class: com.ali.b2b.crm.dynamic.agent.MyAgentMain
Main-Class: com.ali.b2b.crm.dynamic.agent.Dynamic
Can-Redefine-Classes: true
Can-Retransform-Classes: true
Boot-Class-Path: javassist.jar
Class-Path: lib/tools.jar lib/guava-r09.jar lib/guice-2.0.jar?
?lib/jakarta.commons.lang-2.2.jar lib/jakarta.commons.logging-0.0.0.jar lib/javassist.jar

jar包中MANIFEST.MF相關(guān)內(nèi)容

打包jar包的時候 ,有一個文件夾叫 META-INF/MANIFEST.MF 這個文件里保存一些該jar包的信息. 我們javaagent的相關(guān)信息也保存在這個文件中.

還有一個很重要的問題是里面有一個字段叫Class-Path 可以設(shè)置調(diào)用的jar包路徑, 改路徑可以寫相對路徑 , 也就是相對于該jar包的路徑

有多個jar包 可以用空格分開 每行內(nèi)容不能超過70字符

MANIFEST.MF文件可以由maven生成 , 需要在pom文件中設(shè)置

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <archive>
                        <!--自動添加META-INF/MANIFEST.MF -->
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                        <manifestEntries>
                            <Premain-Class>org.agent.Agent</Premain-Class>
                            <Can-Redefine-Classes>true</Can-Redefine-Classes>
                            <Can-Retransform-Classes>true</Can-Retransform-Classes>
                            <Class-Path>lib/javassist-3.9.0.jar</Class-Path>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

生成的文件內(nèi)容如下:

Manifest-Version: 1.0
Premain-Class: org.agent.Agent
Can-Redefine-Classes: true
Can-Retransform-Classes: true
Class-Path: lib/javassist-3.9.0.jar
Build-Jdk-Spec: 1.8
Created-By: Maven JAR Plugin 3.2.2

參數(shù)介紹

  • Premain-Class:包含 premain 方法的類(類的全路徑名)
  • Agent-Class:包含 agentmain 方法的類(類的全路徑名)
  • Boot-Class-Path:設(shè)置引導(dǎo)類加載器搜索的路徑列表。查找類的特定于平臺的機(jī)制失敗后,引導(dǎo)類加載器會搜索這些路徑。按列出的順序搜索路徑。列表中的路徑由一個或多個空格分開。路徑使用分層 URI 的路徑組件語法。如果該路徑以斜杠字符(“/”)開頭,則為絕對路徑,否則為相對路徑。相對路徑根據(jù)代理 JAR 文件的絕對路徑解析。忽略格式不正確的路徑和不存在的路徑。如果代理是在 VM 啟動之后某一時刻啟動的,則忽略不表示 JAR 文件的路徑。(可選)
  • Can-Redefine-Classes:true表示能重定義此代理所需的類,默認(rèn)值為 false(可選)
  • Can-Retransform-Classes:true 表示能重轉(zhuǎn)換此代理所需的類,默認(rèn)值為 false (可選)
  • Can-Set-Native-Method-Prefix: true表示能設(shè)置此代理所需的本機(jī)方法前綴,默認(rèn)值為 false(可選)

即在該文件中主要定義了程序運(yùn)行相關(guān)的配置信息,程序運(yùn)行前會先檢測該文件中的配置項(xiàng)。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java foreach循環(huán)的使用方法詳解

    Java foreach循環(huán)的使用方法詳解

    Java SE5引入了一種更加簡潔的for語法用于數(shù)組和容器,即foreach語法,表示不必創(chuàng)建int變量去對由訪問項(xiàng)構(gòu)成的序列進(jìn)行計(jì)數(shù),foreach將自動產(chǎn)生每一項(xiàng),這種循環(huán)方式在我們后來遍歷集合時很常用,所以也有必要來學(xué)習(xí)一下,需要的朋友可以參考下
    2023-05-05
  • Spring?Boot?Security認(rèn)證之Redis緩存用戶信息詳解

    Spring?Boot?Security認(rèn)證之Redis緩存用戶信息詳解

    本文介紹了如何使用Spring Boot Security進(jìn)行認(rèn)證,并通過Redis緩存用戶信息以提高系統(tǒng)性能,通過配置RedisUserDetailsManager,我們成功地將用戶信息存儲到了Redis中,并在Spring Security中進(jìn)行了集成,需要的朋友可以參考下
    2024-01-01
  • Spring?Data?Jpa?復(fù)雜查詢方式總結(jié)(多表關(guān)聯(lián)及自定義分頁)

    Spring?Data?Jpa?復(fù)雜查詢方式總結(jié)(多表關(guān)聯(lián)及自定義分頁)

    這篇文章主要介紹了Spring?Data?Jpa?復(fù)雜查詢方式總結(jié)(多表關(guān)聯(lián)及自定義分頁),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • IDEA關(guān)閉git管理,文件變成紅色解決方案

    IDEA關(guān)閉git管理,文件變成紅色解決方案

    在軟件開發(fā)中,當(dāng)一個文件夾內(nèi)的Java項(xiàng)目啟用Git版本控制,通常會導(dǎo)致該文件夾下所有項(xiàng)目同步開啟Git,這種做法有助于保持項(xiàng)目的一致性和可追溯性,但也可能帶來管理上的復(fù)雜性,如果需要解除某個項(xiàng)目的Git管理,可以通過IDE的設(shè)置選項(xiàng)進(jìn)行調(diào)整
    2024-10-10
  • SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

    這篇文章主要介紹了SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • springBoot整合CXF并實(shí)現(xiàn)用戶名密碼校驗(yàn)的方法

    springBoot整合CXF并實(shí)現(xiàn)用戶名密碼校驗(yàn)的方法

    這篇文章主要介紹了springBoot整合CXF并實(shí)現(xiàn)用戶名密碼校驗(yàn)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • springBoot整合Eureka啟動失敗的解決方案

    springBoot整合Eureka啟動失敗的解決方案

    這篇文章主要介紹了springBoot整合Eureka啟動失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • SpringBoot實(shí)現(xiàn)PDF添加水印的示例

    SpringBoot實(shí)現(xiàn)PDF添加水印的示例

    本文主要介紹了SpringBoot實(shí)現(xiàn)PDF添加水印的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Spring?MVC中的Controller進(jìn)行單元測試的實(shí)現(xiàn)

    Spring?MVC中的Controller進(jìn)行單元測試的實(shí)現(xiàn)

    本文主要介紹了如何對Spring?MVC中的Controller進(jìn)行單元測試的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • SpringBoot+minio+kkfile實(shí)現(xiàn)文件預(yù)覽功能

    SpringBoot+minio+kkfile實(shí)現(xiàn)文件預(yù)覽功能

    在現(xiàn)代的 Web 應(yīng)用中,文件預(yù)覽功能是提升用戶體驗(yàn)的重要部分,尤其是在文檔管理系統(tǒng)中,本文將帶你逐步實(shí)現(xiàn)如何在 Spring Boot 項(xiàng)目中集成 MinIO(一個對象存儲系統(tǒng))與 KKFileView(一個開源文件預(yù)覽工具),以實(shí)現(xiàn)對各種類型文件的在線預(yù)覽,需要的朋友可以參考下
    2024-12-12

最新評論