yuu_nkjm blog
2011-01-14(Fri) [長年日記]
[Java] JVM上で実行している箇所(ソースコード内の行数)の表示
現在どのソースコードの何行目にいるかを取得したいことがある.log4jの機能を使って,ログファイルに書き出すような方法も考えられるが,文字列として取得したい場合などは他の方法が必要.そんなとき,Thread.currentThread().getStackTrace(),もしくはException.getStackTrace()を使う.
メソッドの呼び出し元を調べたい時にも使える.
Threadクラス
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
出力例↓
java.lang.Thread.getStackTrace(Thread.java:1436)
info.nkjm.yuu.java.Hoge.start(Hoge.java:23)
info.nkjm.yuu.java.Hoge.main(Hoge.java:16)
Exceptionクラス
StackTraceElement[] stackTraceElements = new Exception().getStackTrace();
出力例↓
info.nkjm.yuu.java.Hoge.start(Hoge.java:23)
info.nkjm.yuu.java.Hoge.main(Hoge.java:16)
- JVM 例外 ×2 / jvm 個数 ×1 / jvm ソースコード ×1 / JVMのコード ×1 / java.lang.Thread.getStackTrace() ×1 / Exception.getStackTrace ×1 / jvm exception ×1 / ブログ ソースコード 行数表示 ×1