As the title states, I'm trying to use javap
with eclipse but have difficulties setting it up. I'm trying to set it up using external tools
from the run
menu but can't find the correct Arguments:
string to make it work. Basically I need something that will dynamically execute the current file I have opened.
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
In order to disassemble the currently selected
.class
file in Eclipse I use the following arguments in the External Tools Configurations.This way classes in subpackages of the
bin
folder can also be disassembled. The output is displayed in the Console view.Oracle documentation of javap parameters.
I use the following external tool configuration to achieve this:
${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 whyjavap
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 tobuild/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.In-addition to the valuable custom script suggested by @AlexR; the other way is : Open the terminal windows within the Ecplise and run the javap command with -p and other option.
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
toclass
and source folder to bin folder. If you are using linux it it can be easily done using commandsed
. If you are on windows it can be implemented using commandSET
with~
. See help for more details.Good luck.
Please try by modify the
Working Directory
to match your java project output folder. In my case, it looks as given below.Working Directory:
${workspace_loc:/Sample/bin}
Then I selected the
.class
file and executed thejavap
without any issues.