2011-08-14 3 views
15

제목으로, 나는 이클립스와 함께 javap을 사용하려고하는데 어려움을 겪고있다. run 메뉴에서 external tools을 사용하여 설정하려고하지만 올바르게 작동하도록하려면 Arguments: 문자열을 찾을 수 없습니다. 기본적으로 내가 열어 본 현재 파일을 동적으로 실행할 무언가가 필요합니다.Eclipse와 javap을 사용하는 방법은 무엇입니까?

답변

24

나는 이것을 달성하기 위해 다음과 같은 외부 도구 구성을 사용 enter image description here

${system_path:javap}

는 이클립스가 사용하는 JDK에서은 javap를 찾는 데 사용됩니다. 대신에 javap의 절대 경로를 사용할 수 있습니다.

${project_loc}은 프로젝트의 절대 경로를 반환합니다. 이것은 .class 파일을 찾기 위해 사용할 미리 정의 된 변수를 찾을 수 없기 때문에 사용되었습니다. 따라서 .class 파일이 들어있는 디렉토리 대신 프로젝트 디렉토리에서 javap이 실행됩니다. javap에 전달되는 인수 중

:

  • bin 이클립스 프로젝트의 기본 출력 폴더입니다. 이 값을 build/classes 또는 프로젝트에서 사용하는 값으로 변경하십시오. 값은 ${project_loc}과 관련이 있습니다. 대신 절대 경로를 지정할 수 있습니다.
  • ${java_type_name}은 선택된 클래스 이름을 얻는 데 사용됩니다.

프로젝트 탐색기보기 또는 프로젝트 탐색기보기에서 Java 파일을 선택하거나보기의 Java 유형을 선택한 다음 외부 도구를 실행할 수 있습니다. 참고 -이 방법은 메서드, 내부 클래스 등을 선택하고 도구를 실행하면 자체적으로 리소스가 아니기 때문에 ${project_loc}이 비어있는 시나리오로 이어질 때 아주 잘 작동하지 않습니다.

+0

고맙습니다! [...] – guest

+0

+1 또한 매개 변수가 일찍 배치되어야하기 때문에'ClassName' 앞에'-c'를 배치하는 그림을 업데이트했습니다. 희망은 당신이 상관 없어 :) – Pshemo

2

당신의 문제는 클래스 파일에 대한 javap requres 경로입니다. 그러나 소스 파일을 선택하면 이클립스 변수 ${selected_resource_loc}에 java 소스 경로가 포함되어 있습니다. 내가 아는 한 클래스 파일에 대한 경로를 포함하는 변수는 없습니다.

자바 파일 경로를 받아들이는 사용자 지정 스크립트를 만드는 것이 가장 쉽다고 생각합니다. javaclass으로 대체하고 원본 폴더를 bin 폴더로 바꿉니다. linux를 사용하고 있다면, sed 명령으로 쉽게 할 수 있습니다. 창문에 있다면 SET 명령어를 사용하여 ~으로 구현할 수 있습니다. 자세한 내용은 도움말을 참조하십시오.

행운을 빈다.

0

Working Directory을 자바 프로젝트 출력 폴더와 일치하도록 수정하십시오. 제 경우에는 아래 보이는 것처럼 보입니다.

작업 디렉토리 :

${workspace_loc:/Sample/bin}는 다음 나는 .class 파일을 선택하고 문제없이 javap을 실행.

0

현재 Eclipse에서 현재 선택된 .class 파일을 분해하려면 외부 도구 구성에서 다음 arguments을 사용하십시오.

이 방법을 사용하면 bin 폴더의 하위 패키지에있는 클래스를 디스 어셈블 할 수도 있습니다. 출력이 콘솔보기에 표시됩니다.

오라클 설명서 javap parameters.

관련 문제