在以下堆栈跟踪中:
java.lang.NullPointerException
at burp.ConfigMenu.run(Config.java:38)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
斜杠是什么意思?我知道例如“ burp.ConfigMenu.run(Config.java:38)”表示,但不是前面带有“ java.base”或“ java.desktop”的行。
它看起来像是某种别名,超类,名称空间...但是我不知道。 Google / DDG对于“ java堆栈跟踪中的斜线”之类的查询不是很有帮助。通过查找提到的类,我找到了其他一些示例,但没有找到它们的意思。
答案 0 :(得分:5)
The Javadoc for StackTraceElement toString()(Java 9,注释)说明了格式:
第一个示例显示了由三个组成的堆栈跟踪元素 元素,每个元素用“ /”分隔,后跟源文件名和 包含执行点的源行的行号。的 第一个元素“ com.foo.loader”是类加载器的名称。的 第二个元素“ foo@9.0”是模块名称和版本。第三 element是包含执行点的方法; “ com.foo.Main”“ 是完全限定的类名,而“ run”是方法的名称。 “ Main.java”是源文件名,“ 101”是行号。
请注意,上述内容中的某些元素是如何省略的。
如果类加载器是内置类加载器或未命名,则 如图所示,省略了第一个元素及其后跟的“ /” “ acme@2.1/org.acme.Lib.test(Lib.java:80)”。如果第一个元素是 省略,并且模块是未命名的模块,第二个元素和 其后跟的“ /”也被省略,如下所示 “ MyClass.mash(MyClass.java:9)”。