java - 记录已执行的 java 代码的行号

标签 java code-coverage

我正在开发一个应用程序。作为其中的一部分,当 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/

相关文章:

java - ColdFusion 程序员想要使用新版本的 Java APNS 但不知道如何编译 Java

java - 在方程中实现指数

android - 使用 ant 构建 Android 测试时如何使用 emma 过滤器?

php - 代码覆盖率报告错误地指示 Controller 的 100% 覆盖率

c# - ExcludeFromCodeCoverage 不适用于 CloseAsync 方法

c# - DotCover 不覆盖引用的 DLL

android - Android 上 lib 的 Emma 代码覆盖率

java - 使用回调后执行到 UI 主线程的方法创建 Runnable 类

java - Android SAX解析空指针异常

java - 刽子手 : Remember Previous Guesses