ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

mainが始まる前にメソッドを呼ぶ

なんだかBINARY HACKSにもそんなのありましたが、何かに使えるかも知れないので一応書いておく。

>more premain.java
public class premain
{
        public static void premain(String agentArgs)
        {
                System.out.println("premain");
        }
}
>javac premain.java

>more Manifest.mf
Premain-Class: premain

>jar cvmf Manifest.mf premain.jar premain.class
マニフェストが追加されました。
premain.class を追加中です。(入 = 373) (出 = 261)(30% 収縮されました)
>more main.java
public class main
{
        public static void main(String[] args)
        {
                System.out.println("main");
        }
}
>javac main.java

>java -javaagent:premain.jar main
premain
main

>

詳しくはこの辺に書いてあります。
パッケージ java.lang.instrument