How to use javap with eclipse?

I use the following external tool configuration to achieve this:

enter image description here

${system_path:javap} is used to locate javap in the JDK used by the Eclipse. You can use an absolute path to javap instead.

${project_loc} returns the absolute path to the project. This is used, since I could not find a pre-define variable to use, to locate the .class file of a resource, and that's why javap runs in the project's directory instead of the directory containing the .class file.

Among the arguments passed to javap:

  • bin is the default output folder for Eclipse projects. Change this to build/classes or whatever is used by the project. Note, the value is relative to ${project_loc}; you can specify absolute paths instead.
  • ${java_type_name} is used to obtain the selected class name.

You can select a Java file in the Project explorer view or Project navigator view, or even a Java type in any of the views, and then run the external tool. Note - this approach doesn't work quite well when you select a method, an inner class etc. and then run the tool, as they are not resources on their own, leading to the scenario where ${project_loc} will be empty.


Your problem is that javap requres path to class file but when you select your source file you can access eclipse variable ${selected_resource_loc} contains path to java source. As far as I understand there is no variable that contains path to class file.

I think that the easiest way for you is creating your custom script that accepts path to java file, replaces java to class and source folder to bin folder. If you are using linux it it can be easily done using command sed. If you are on windows it can be implemented using command SET with ~. See help for more details.

Good luck.