2016-12-04 43 views
1

-javaagent選項告訴JVM的主類的JAR文件之前調用Java工具代理,你通常有一個命令選項來調用它:在清單中指定

java -javaagent:agent.jar program.jar 

不必鍵入此每次都是非常不方便的,那麼有沒有辦法在program.jar清單中指定代理?

# program.jar/META-INF/MANIFEST.MF 
... 
Java-Agent: agent.jar 
+0

在[這個答案]的末尾(http://stackoverflow.com/a/19912148/2711488)是使用附加API附着到自身,換言之,開始本身如Java劑的樣本代碼。主要目的是掌握'Instrumentation'實現實例。如果這是你的目標,那麼你已經完成了。如果你確定知道你的代碼將被包含在一個已經具有必需的'Agent-Class:'清單條目的jar文件中,那麼你可以通過跳過創建虛擬jar文件來簡化該解決方案。 – Holger

回答

1

爪哇9增加它可以在可執行JAR文件可以使用被加載在主類之前開始的試劑啓動代理-Class屬性。

1

不幸的是,沒有這樣的選擇。作爲替代方案,您可以使用附加API動態地附加Java代理。然而,這具有一些限制,例如它通常只適用於隨JDK一起分發的JVM。

用於連接代理方便的API,看看Byte Buddy Agent

+0

是否有指定的同一個JAR文件的代理人倍美力類的方式,讓我沒有擺在首位的是一個額外的罐(即,具有agent.jar中的program.jar的內容)? – Clashsoft

+0

當然可以。 program.jar program.jar':你可以通過添加'倍美力,Class'和'主Class'頭相同的清單和運行Java的'結合-javaagent的jar文件。 –

+0

不幸的是,還要求我把'-javaagent'選項:( – Clashsoft

相關問題