2016-04-16 17 views
0

logback libraryには、「パッケージデータによるスタックトレース」(パッケージとパッケージのバージョン)を得る方法があります。スタックトレースからパッケージデータ[jarファイル名]を取得するには?

例:

java.lang.Exception: 99 is invalid 
    at path.to.MyClass.myFunc(MyClass.java:431) [struts-1.2.9.jar:1.2.9] 

私は、スタックトレースの行から "struts-1.2.9.jar" を取得するにはどうすればよいですか?

JavaやScalaにはこれを行うメソッドがありますか?

String getPackageName(String lineInTrace) { 
    ... 
    return packageName 
} 
+0

P.S.をお試しください私は完全にこのようなコードを見て、それを失った。 –

+0

[クラスが入っているjarファイルを特定する](http://stackoverflow.com/questions/1983839/determine-which-jar-file-a-class-is-from)を参照してください。 – saka1029

答えて

1

この

for (StackTraceElement el : e.getStackTrace()) { 
    Class<?> clazz = Class.forName(el.getClassName()); 
    String location = clazz.getProtectionDomain().getCodeSource().getLocation().toString(); 
    System.out.println(location.substring(location.lastIndexOf('/') +1)); 
} 
関連する問題