Strata 并不适合 Scala 或 JRuby,因为它们直接编译为字节码,因此 SourceFile 和 LineNumberTable 属性就足够了。Strata 适用于诸如 JSP 之类的东西,这些东西被翻译成 Java 源文件并被编译。层由存储在 SourceDebugExtension 属性中的源映射 (SMAP) 定义。这一切如何运作的细节是JSR-45的一部分。另一个例子是状态机编译器,尽管我不相信它会生成 SMAP。我也不确定 javac 是否有将 SMAP 嵌入到类文件中的选项。然后,您将需要一个单独的工具。