如何在 Visual Studio Code 中反编译具有正确行号的 Java 类?

优质博文:IT-BLOG-CN

问题

我在 macOS 中使用 vscode 版本 1.92.2,并安装了Java 扩展包v0.29.0。当我打开command + click或right click->Go to definition一个没有源代码的类时,vscode 会使用 FernFlower 反编译器打开 .class 文件。但是它不会保留原始行号。这是针对IntelliJ的。如何对 vscode 执行相同操作?

我需要原始行号的原因是因为我可以从堆栈跟踪导航到引发异常的确切行。

仅供参考,我已经使用外部反编译器检查过,它显示正确的行号,这意味着类或 jar 文件仍然具有调试信息。

解决方案

问:一般来说你不能这样做,因为所有的空白和注释行都将从可执行代码中删除(除非原始代码中嵌入了额外的调试信息)。

答:已经使用外部反编译器检查过,它显示了正确的行号,这意味着类或 jar 仍然具有调试信息。

问:但 VSCode 的类似问题应该被否决吗?VSCode 用户不值得拥有同样的功能吗?

经过彻底的搜索后,我发现了一个关于在 Visual Studio Code 中实现 Java 反编译器的未解决的问题,可以在https://github.com/dgileadi/vscode-java-decompiler/issues/4找到。

看来此功能尚未实现。因此,您有两个选择:要么耐心等待实现完成,要么主动自己实现。

相关推荐
SZYSK1 分钟前
OpenHarmony 上读卡、推理和双屏刷新抢 CPU:核验机与消费机的调度差
物联网·算法·harmonyos·1024程序员节
Ivanqhz19 分钟前
MoE + LLM 应用
数据库·人工智能·pytorch·python·深度学习·算法·1024程序员节
2501_9159214322 分钟前
KXBuild CI 实操,Windows/Linux 服务器接入 Jenkins 打包 iOS IPA
服务器·windows·vscode·ios·ci/cd·个人开发·敏捷流程
Lhan.zzZ24 分钟前
用 Qt 构建线程安全的通讯静态库:从线程亲和性到完整工程
c++·vscode·qt·tcp/ip·udp
Gauss松鼠会25 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
西瓜拿铁好喝31 分钟前
开源和闭源 AI 办公工具,分别适合谁
java·前端·数据库
学长毕设33 分钟前
基于SpringBoot的校园礼服租赁系统的设计与实现
java·spring boot·后端
lpfasd12335 分钟前
推荐算法进化史
算法·机器学习·推荐算法
明天也要努力学习39 分钟前
深入理解 JVM 垃圾回收(GC)
java·jvm
Pniubi1 小时前
力扣543二叉树的直径(深度优先搜索法(递归))
算法·leetcode·职场和发展