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

${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}出现空的情况。
您的问题是 javap 需要类文件的路径,但是当您选择源文件时,您可以访问 eclipse 变量${selected_resource_loc}包含 java 源的路径。据我了解,没有包含类文件路径的变量。
我认为对您来说最简单的方法是创建自定义脚本,该脚本接受 java 文件的路径,将源文件夹替换java为classbin 文件夹。如果您使用的是 linux,则可以使用 command 轻松完成sed。如果您在 Windows 上,则可以使用SET带有~. 有关详细信息,请参阅帮助。
祝你好运。
请尝试修改Working Directory以匹配您的 java 项目输出文件夹。就我而言,它看起来如下所示。
工作目录:${workspace_loc:/Sample/bin}
然后我选择了.class文件并执行了javap没有任何问题的文件。
