2011-08-14 12 views
15

Como dice el título, intento usar javap con eclipse pero tengo dificultades para configurarlo. Estoy tratando de configurarlo usando external tools desde el menú run, pero no puedo encontrar la cadena correcta Arguments: para que funcione. Básicamente, necesito algo que ejecute dinámicamente el archivo actual que abrí.¿Cómo usar javap con eclipse?

Respuesta

24

uso el siguiente configuración herramienta externa para lograrlo:

enter image description here

${system_path:javap} se utiliza para localizar javap en el JDK utilizado por el Eclipse. Puede usar una ruta absoluta a javap en su lugar.

${project_loc} devuelve la ruta de acceso absoluta al proyecto. Esto se usa, ya que no pude encontrar una variable predefinida para usar, para localizar el archivo .class de un recurso, y es por eso que javap se ejecuta en el directorio del proyecto en lugar del directorio que contiene el archivo .class.

Entre los argumentos que se pasan a javap:

  • bin es la carpeta de salida predeterminada para proyectos de Eclipse. Cambie esto a build/classes o lo que sea que use el proyecto. Tenga en cuenta que el valor es relativo a ${project_loc}; puede especificar rutas absolutas en su lugar.
  • ${java_type_name} se utiliza para obtener el nombre de clase seleccionado.

Puede seleccionar un archivo Java en la vista Explorador del proyecto o Navegador del proyecto, o incluso un tipo Java en cualquiera de las vistas, y luego ejecutar la herramienta externa. Nota: este enfoque no funciona bastante bien cuando selecciona un método, una clase interna, etc. y luego ejecuta la herramienta, ya que no son recursos por sí mismos, lo que lleva al escenario donde ${project_loc} estará vacío.

+0

¡Gracias! [...] – guest

+0

+1 también actualizó la imagen para colocar '-c' antes de' ClassName' ya que los parámetros deben colocarse antes. Espero que no te importe :) – Pshemo

2

Su problema es que javap requiere la ruta al archivo de clase, pero cuando selecciona su archivo de origen puede acceder a la variable de eclipse ${selected_resource_loc} que contiene la ruta a la fuente java. Por lo que yo entiendo, no hay ninguna variable que contenga la ruta al archivo de clase.

Creo que la manera más fácil para usted es crear su script personalizado que acepte la ruta al archivo java, reemplaza java a class y la carpeta de origen a la carpeta bin. Si está utilizando Linux, puede hacerlo fácilmente usando el comando sed. Si está en Windows, puede implementarlo usando el comando SET con ~. Ver ayuda para más detalles.

Buena suerte.

0

Intente modificar el Working Directory para que coincida con la carpeta de salida del proyecto java. En mi caso, se ve como se indica a continuación.

Directorio de trabajo: ${workspace_loc:/Sample/bin}

Luego selecciona el archivo .class y ejecutó la javap sin ningún problema.

0

Para desmontar el archivo actualmente seleccionado .class en Eclipse utilizo el siguiente arguments en las configuraciones de herramientas externas.

De esta forma las clases en los subpaquetes de la carpeta bin también se pueden desmontar. La salida se muestra en la vista de la consola.

Documentación de Oracle de javap parameters.

Cuestiones relacionadas