如何在 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找到。

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

相关推荐
invicinble几秒前
我们对整个IT架构的全视野全场景有个理解(全景理解)
架构
lauo1 分钟前
ibbot手机:一部手机,双重革命
人工智能·智能手机·架构·开源·github
李白的天不白1 分钟前
针对你遇到的 Client.Timeout exceeded 问题,我判断是防火墙拦截了 HTTPS 流量
java
rsuhbsrjms3 分钟前
可视采耳仪器多少钱一台?可视耳勺哪个牌子好?口碑好的可视耳勺
网络·人工智能·算法
冷色调的咖啡师3 分钟前
1.大数据架构技术 上——搭建分布式Hadoop集群
大数据·linux·hadoop·分布式·hdfs·架构·yarn
linweidong5 分钟前
Java 后端开发面试 50 个高频易混淆知识点详解
java·spring boot·spring·spring cloud·面试·mybatis·spring事务
码语智行6 分钟前
应用启动和关闭监听器功能分析
java·spring boot
finhaz6 分钟前
神经网络等机器学习模型的看法
算法
Resky08186 分钟前
什么是 Spring IOC:倒过来让容器帮你 new,而不是你到处 new
java·spring
AutumnWind04206 分钟前
【JDK动态代理源码梳理】
java·后端·spring