如何在eclipse IDE中查看Java的字节码?

Jam*_*sev 21 eclipse bytecode editor class file

有时,在Eclipse中,我按下一组键,这些键将我带到显示我的.class文件(字节码)内容的编辑器页面.我似乎永远无法记住那个组合键是什么.

有人可以告诉我吗?

或者换句话说,如何看到自己的字节码?

Mar*_*ers 11

Eclipse的默认类文件查看器显示源(请参阅VonC的答案),如果它已与二进制文件关联,否则它提供类的类似javap的视图(带有附加源的选项).我猜你正在寻找的是后者.

我从来没有找到一种方法来干净地强制Eclipse显示输出而不是链接源.您可能想要的是一个Eclipse插件,它提供类似Javap的功能(或javap的接口).寻找说明他们"反汇编"的插件(而不是"反编译",就像jad).

除了一个插件,你可以配置一个外部工具来执行javap,但它可能不适合其他eclipse功能.

编辑:让我清楚以上内容:如果你点击F3,Eclipse会执行以下操作(通常,实际过程可能略有不同):

  1. 解析目标(如果您选择Java文件,它将是Java文件本身;如果您正在选择或您的光标位于类名称之上,它将是类声明,类似于方法声明等).
  2. 搜索包含目标的Java文件的构建路径(首先是相同的项目).如果找到,则打开一个显示该Java源文件的可写编辑器.
  3. 对于类/方法声明,它继续在构建路径上搜索包含声明的类文件的引用.如果找到了,那么

    a)如果类文件附加了源文件,请打开链接Java文件的只读编辑器.

    b)如果类文件没有附加源,则打开一个只读面板,显示已编译类文件的反汇编(javap-like)字节码.

我的猜测是你认为有3.b)的专用键序列,但我认为没有.但同样,我希望在这里被证明是错误的.


ale*_*2k8 9

您可以使用ASM 4.0插件.

在此输入图像描述

安装

Bytecode Outline插件可以从Eclipse Update Manager安装到ObjectWeb Eclipse更新站点http://download.forge.objectweb.org/eclipse-update/. 或者,插件可以从ObjectWeb Forge站点下载,并手动安装在Eclipse插件目录中.

用法

要查看当前.java或.class文件的字节码:

窗口 - >显示视图 - >其他 - > Java - >字节码

要比较两个.java或.class文件的字节码:

选择两个*.class或*.java文件 - >右键单击 - >比较 - >每个其他字节码

要么

选择一个*.class或*.java文件 - >右键单击 - >比较 - >另一个类字节码

http://asm.ow2.org/eclipse/index.html


Pre*_*raj 8

使用以下外部工具配置,我们可以在以下帮助下查看eclipse中的java字节代码javap:

在此输入图像描述

要获得上面的弹出选择Run选项并选择External Tools并选择External Tools configuration...

在此输入图像描述

${system_path:javap}用于在Eclipse使用的JDK中定位javap.您可以使用javap的绝对路径.

${project_loc}返回项目的绝对路径.这是使用的,因为我找不到要使用的预定义变量来定位.class资源的文件,这就是为什么javap在项目的目录而不是包含该.class文件的目录中运行的原因.

传递给的论点包括javap:

  • bin是Eclipse项目的默认输出文件夹.将此更改为build/classes或项目使用的任何内容.注意,该值是相对的${project_loc}; 您可以改为指定绝对路径.
  • ${java_type_name} 用于获取所选的类名.

您可以在Project explorer视图或Project导航器视图中选择Java文件,甚至可以在任何视图中选择Java类型,然后运行外部工具.注意 - 当您选择方法,内部类等然后运行该工具时,这种方法不能很好地工作,因为它们本身不是资源,导致${project_loc}将为空的场景.

资源


Garbage Tools博士是一套在Apache Open Source许可下发布的Eclipse插件.

使用Eclipse Marketplace 安装Bytecode Visualizer.

要查看字节码:

  1. 右键单击.java文件,选择open with并选择other您将获得以下弹出窗口:
    在此输入图像描述

  2. 搜索"Bytecode Visualizer"并选择它打开文件的选项,如下所示,您可以找到Bytecode选项,如下所示:
    在此输入图像描述


增强的类反编译器

"窗口>首选项>常规>编辑器>文件关联"

将默认值更改为两个.class关联.

" *.class ":默认选择"类反编译器查看器".

" *.class without source ":默认选择"Class Decompiler Viewer".

在此输入图像描述