斜杠在Java堆栈跟踪中意味着什么?

问题描述 投票:3回答:1

在以下堆栈跟踪中:

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”的行。

它看起来像某种别名,超类,命名空间......但我无法弄明白。谷歌/ DDG对“像java堆栈跟踪中的斜杠”这样的查询不是很有帮助。我通过寻找所提到的课程找到了一些其他的例子,但不是他们的意思。

java stack-trace
1个回答
5
投票

The Javadoc for StackTraceElement toString()(Java 9,注释)解释了格式:

第一个示例显示了一个堆栈跟踪元素,它由三个元素组成,每个元素用“/”分隔,后跟源文件名和包含执行点的源代码行号。第一个元素“com.foo.loader”是类加载器的名称。第二个元素“[email protected]”是模块名称和版本。第三个元素是包含执行点的方法; “com.foo.Main”“是完全限定的类名,”run“是方法的名称。”Main.java“是源文件名,”101“是行号。

注意如何省略上面的一些元素。

如果类加载器是内置类加载器或未命名,那么第一个元素及其后面的“/”将被省略,如“[email protected]/org.acme.Lib.test(Lib.java:80)”所示。 。如果省略第一个元素并且模块是未命名的模块,则第二个元素及其后面的“/”也将被省略,如“MyClass.mash(MyClass.java:9)”中所示。

© www.soinside.com 2019 - 2024. All rights reserved.