2016-09-27 11 views
2

私は「これをしてはいけない」ことを知っていますが、ClassLoadersをちょっと試してみましたが、JProfilerはそれを気に入らず、私がプロファイルしたいものを何もしないので、 、 お願いします :)。アプリケーションからJProfilerで起動したことを検出するにはどうすればよいですか?

JProfilerでアプリケーションが起動されたことをアプリケーションから検出するにはどうすればよいですか? JProfilerが現在接続されているだけかもしれませんか?

+1

。 – talex

+0

Oookay。どうすれば入手できますか?ネイティブコードが死ぬ必要がありますか? – Daniel

+1

VMパラメータの取得方法については、http://stackoverflow.com/questions/1490869/how-to-get-vm-arguments-from-inside-of-java-applicationを参照してください。 JProfilerはクラスローダーに干渉しないでください。どのような問題が発生しますか? –

答えて

2

あなたはどのように知っていれば答えは簡単です:あなたは、コマンドライン引数(あなたがmain`メソッド `で取得されていないもの)を検査し、「エージェント」を検索することができます

public static boolean isStartedWithJProfiler() { 
    RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); 
    List<String> arguments = runtimeMxBean.getInputArguments(); 
    for(String argument : arguments) { 
     if(argument.contains("profilerti")) { 
      return true; 
     } 
    } 
    return false; 
} 
関連する問題