java.lang.instrument

簡介,命令行接口,javaagent:jarpath[=options],Premain-Class,Boot-Class-Path,Can-Redefine-Classes,

簡介

軟體包 java.lang.instrument 的描述
提供允許 Java 程式語言代理監測運行在 JVM 上的程式的服務。監測的機制是對方法的位元組碼的修改。
包規範
在啟動 JVM 時,通過指示代理類 及其代理選項 啟動一個代理程式。
該代理類必須實現公共的靜態 premain 方法,該方法原理上類似於 main 應用程式入口點
public static void premain(String agentArgs, Instrumentation inst);
JVM 被初始化之後,每個 premain 方法將按照指定代理的順序被調用。然後,調用實際的應用程式 main 方法。每個 premain 方法必須按順序返回,以便啟動序列能夠繼續。代理類將由載入包含應用程式 main 方法的類的同一類載入器載入。premain 方法將在與應用程式 main 方法相同的安全性和類載入器規則下運行。不存在代理 premain 方法可以執行的建模限制。應用程式 main 可以執行的任何事情(包括生成執行緒)從 premain 來看都是合法的。
每個代理程式通過 agentArgs 參數傳遞其代理選項。代理選項作為單個字元串傳遞,任何其他分析應由代理程式本身執行。
如果該代理程式不能被解析(例如,由於無法載入代理類,或由於代理類沒有一致的 premain 方法),則 JVM 將中止。如果 premain 方法拋出未捕獲的異常,則 JVM 將中止。

命令行接口

在帶有命令行接口的 JVM 上,通過向 JVM 命令行添加此開關來指定代理程式:

javaagent:jarpath[=options]

jarpath 是指向代理程式 JAR 檔案的路徑。options 是代理選項。此開關可以在同一命令行上多次使用,從而創建多個代理程式。多個代理程式可以使用同一 jarpath。代理 JAR 檔案必須符合 JAR 檔案規範。下面的清單屬性是針對代理 JAR 檔案定義的:

Premain-Class

代理類。即包含 premain 方法的類。此屬性是必需的,如果它不存在,JVM 將中止。註:這是類名,而不是檔案名稱或路徑。

Boot-Class-Path

由引導類載入器搜尋的路徑列表。路徑表示目錄或庫(在許多平台上通常作為 jar 或 zip 庫被引用)。查找類的特定於平台的機制出現故障之後,引導類載入器會搜尋這些路徑。按列出的順序搜尋路徑。列表中的路徑由一個或多個空格分開。路徑使用分層 URI 的路徑組件的語法。如果該路徑以斜槓字元(“/”)開頭,則為絕對路徑,否則為相對路徑相對路徑根據代理 JAR 檔案的絕對路徑解析。忽略格式不正確的路徑和不存在的路徑。此屬性是可選的。

Can-Redefine-Classes

布爾值(true 或 false,與大小寫無關)。能夠重定義此代理所需的類。值如果不是 true,則被認為是 false。此屬性是可選的,默認值為 false。
代理 JAR 檔案附加到類路徑之後。
相關文檔
有關工具文檔的信息,請參閱:
JDK Tools and Utilities
從以下版本開始:
JDK1.5

相關詞條

熱門詞條

聯絡我們