我正在开发一个应用程序。作为其中的一部分,当 Java 程序执行时,我们希望显示执行代码的 Java 程序源代码的行号。我正在使用 Code 类来获取代码中方法的行号。但是我想获取已执行的源代码的行号,即代码路径。
我将添加到此,我编写的程序显示方法的行号。
class LineNum
{
LineNumber[] ln = new LineNumber[300];
JavaClass clazz ;
Code classinfo ;
public static void printCode(Method[] methods) {
System.out.println("Entering PrintCode");
for(int i=0; i < methods.length; i++) {
System.out.println(methods[i]);
Code code = methods[i].getCode();
if(code != null) // Non-abstract method
{
System.out.println(code.getLineNumberTable());
}
}
}
public static void main(String[] args) {
LineNum liner = new LineNum();
liner.clazz = Repository.lookupClass("package_name.File_name");
printCode(liner.clazz.getMethods());
}
}
最佳答案
你可以调用
StackTraceElement[] ele = Thread.currentThread().getStackTrace()
任何时候给你以前的电话。 StackTraceElement 类有一个方法 getLineNumer() 来获取行号。
http://docs.oracle.com/javase/7/docs/api/java/lang/StackTraceElement.html
关于java - 记录已执行的 java 代码的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12213570/