18

正如标题所述,我正在尝试javap与 eclipse 一起使用,但在设置时遇到了困难。我正在尝试使用菜单进行设置,external toolsrun找不到正确的Arguments:字符串以使其工作。基本上我需要一些能够动态执行我打开的当前文件的东西。

4

5 回答 5

28

我使用以下外部工具配置来实现这一点:

在此处输入图像描述

${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 navigator 视图中选择一个 Java 文件,甚至在任何视图中选择一个 Java 类型,然后运行外部工具。注意 - 当您选择一个方法、一个内部类等然后运行该工具时,这种方法效果不佳,因为它们本身不是资源,导致${project_loc}出现空的情况。

于 2011-08-14T14:35:26.160 回答
3

您的问题是 javap 需要类文件的路径,但是当您选择源文件时,您可以访问 eclipse 变量${selected_resource_loc}包含 java 源的路径。据我了解,没有包含类文件路径的变量。

我认为对您来说最简单的方法是创建自定义脚本,该脚本接受 java 文件的路径,将源文件夹替换javaclassbin 文件夹。如果您使用的是 linux,则可以使用 command 轻松完成sed。如果您在 Windows 上,则可以使用SET带有~. 有关详细信息,请参阅帮助。

祝你好运。

于 2011-08-14T14:19:31.307 回答
0

请尝试修改Working Directory以匹配您的 java 项目输出文件夹。就我而言,它看起来如下所示。

工作目录:${workspace_loc:/Sample/bin}

然后我选择了.class文件并执行了javap没有任何问题的文件。

于 2013-02-04T14:03:48.427 回答
0

为了在 Eclipse 中反汇编当前选择的文件,我在 External Tools Configurations 中.class使用了以下参数。

这样bin文件夹子包中的类也可以反汇编。输出显示在控制台视图中。

javap 参数的 Oracle 文档。

于 2016-01-08T09:37:37.923 回答
-1

在eclipse中使用javap命令

除了@AlexR 建议的有价值的自定义脚本;另一种方法是:在 Ecpise 中打开终端窗口并使用 -p 和其他选项运行 javap 命令。

于 2019-01-07T12:02:09.277 回答