1. 程式人生 > 程式設計 >maven為MANIFEST.MF檔案新增內容的方法

maven為MANIFEST.MF檔案新增內容的方法

MANIFEST.MF

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

公共內容

  • Manifest-Version 用來定義manifest檔案的版本,例如:Manifest-Version: 1.0
  • Created-By 宣告該檔案的生成者,一般該屬性是由jar命令列工具生成的,例如:Created-By: Apache Ant 1.5.1
  • Signature-Version 定義jar檔案的簽名版本
  • Class-Path 應用程式或者類裝載器使用該值來構建內部的類搜尋路徑
  • Main-Class 定義jar檔案的入口類,該類必須是一個可執行的類,一旦定義了該屬性即可通過 java -jar x.jar來執行該jar檔案。

javaagent引數屬性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);
  }

到此這篇關於maven為MANIFEST.MF檔案新增內容的方法的文章就介紹到這了,更多相關maven MANIFEST.MF檔案內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!