正如标题所述,我正在尝试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
为class
bin 文件夹。如果您使用的是 linux,则可以使用 command 轻松完成sed
。如果您在 Windows 上,则可以使用SET
带有~
. 有关详细信息,请参阅帮助。
祝你好运。
请尝试修改Working Directory
以匹配您的 java 项目输出文件夹。就我而言,它看起来如下所示。
工作目录:${workspace_loc:/Sample/bin}
然后我选择了.class
文件并执行了javap
没有任何问题的文件。