java-stack-trace是一个用于调试的java instrument,指定方法前缀,它能在指定前缀的方法被调用时打印当前堆栈。
由于asm的限制,仅支持jdk1.8及以上
mvn package
在java命令后添加-javaagent
参数
-javaagent:java-stack-trace-1.0-SNAPSHOT-jar-with-dependencies.jar=[m:method name|f:file name]
可以使用绝对路径
java -javaagent:C:\intellij\idea\java\refactor\src\main\java\java-stack-trace-1.0-SNAPSHOT-jar-with-dependencies.jar=m:getPriceCode lhch.practice.java.refactor._01case.phase01.Movie2
- m: 代表Method方法
- method name: 需要打印堆栈的方法的前缀
- f: 代表从文件读取方法前缀
- file name: 指定读取方法前缀的文件
jar和=之间不能有空格 :不能用中文的冒号
C:\intellij\idea\java\refactor\target\classes>java -javaagent:C:\intellij\idea\java\refactor\src\main\java\java-stack-trace-1.0-SNAPSHOT-jar-with-dependencies.jar=m:main lhch.practice.java.refactor._01case.phase01.Movie2
JavaStackTrace start now...
Rental2 Record for zhangsan
movieTile thisAmount daysRented priceCode
moviename 3.0 1 1
moviename 3.0 1 1
Amount owed is 6.0
You earned 2 frequent renter points