maven~為MANIFEST.MF文件添加內容


MANIFEST.MF

打開Java的JAR文件我們經常可以看到文件中包含着一個META-INF目錄, 這個目錄下會有一些文件,其中必有一個MANIFEST.MF,這個文件描述了該Jar文件的很多信息,下面將詳細介紹MANIFEST.MF文件的內容。

公共內容

  1. Manifest-Version 用來定義manifest文件的版本,例如:Manifest-Version: 1.0
  2. Created-By 聲明該文件的生成者,一般該屬性是由jar命令行工具生成的,例如:Created-By: Apache Ant 1.5.1
  3. Signature-Version 定義jar文件的簽名版本
  4. Class-Path 應用程序或者類裝載器使用該值來構建內部的類搜索路徑
  5. Main-Class 定義jar文件的入口類,該類必須是一個可執行的類,一旦定義了該屬性即可通過 java -jar x.jar來運行該jar文件。

javaagent參數屬性

  1. Premain-Class: com.lind.hot.deploy.DemoJavaAgent 它相當於,當把這個jar當做-javaagent參數注冊當前類加載器時的入口,即如果你希望做一個javaagent包,需要添加這個屬性

DemoJavaAgent內容

注意:javaagent的執行是在當前項目的 main方法之前進行調用的,所以它總是用在項目熱部署項目加密等場景中。

public class DemoJavaAgent {
    /**
     * 該方法在main方法之前運行,與main方法運行在同一個JVM中
     * 並被同一個System ClassLoader裝載
     * 被統一的安全策略(security policy)和上下文(context)管理
     *
     * @param agentOps
     * @param inst
     * @author SHANHY
     * @create 2016年3月30日
     */
    public static void premain(String agentOps, Instrumentation inst) {

        System.out.println("====premain 方法執行");
        System.out.println(agentOps);
    }

    /**
     * 如果不存在 premain(String agentOps, Instrumentation inst)
     * 則會執行 premain(String agentOps)
     *
     * @param agentOps
     * @author SHANHY
     * @create 2016年3月30日
     */
    public static void premain(String agentOps) {

        System.out.println("====premain方法執行2====");
        System.out.println(agentOps);
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM