2011-08-21 5 views
6

Al usar javac (o la tarea ant), el mensaje de error no incluye la ruta de archivo completa, solo incluye el nombre del archivo. Por ejemplo,El mensaje de error de javac no muestra la ruta de archivo completa

$ javac src/path/to/Filename.java 
Filename.java:1: package foo.bar does not exist 
import foo.bar.Baz; 
      ^

Lo que me gustaría es,

$ javac src/path/to/Filename.java 
src/path/to/Filename.java:1: package foo.bar does not exist 
import foo.bar.Baz; 
      ^

Mi problema es que quickfix vim no funciona si no ha dado toda la ruta de archivo, no sólo el nombre de archivo. Con solo el nombre de archivo, se abre un nuevo archivo vacío después de ejecutar: make.

que estoy usando:

  • Debian sibilante
  • OpenJDK-6-jdk v6b23 ~ pre7-1
  • v1.6.0_23 javac
+0

Encontré si usando gcj o el compilador de compilación de eclipse, se imprimirá la ruta completa. Pero la hormiga también imprimirá un error JAVA_HOME no encontrado. No sé cómo resolver esto. –

+0

Estoy 99% seguro de que esto es un error de Ubuntu. Acabo de cambiar mi portátil a Ubuntu 11.10 de FreeBSD. También puedo ver la ruta completa con un error javac en mi servidor FreeBSD. Todavía estoy buscando la solución ... – sarumont

Respuesta

1

Yo no creo que haya es una forma simple de hacer esto.

Sin embargo, creo que hay una manera complicada. Básicamente implica escribir su propio compilador de compilación que hace uso de la capacidad de instalación de un JDK para cargar y ejecutar el compilador de Java dentro de un programa en ejecución. Necesita implementar muchas cosas, pero la clave es un procesador de diagnóstico que formatea los mensajes de error del compilador de la forma que necesita que sean formateados.

Éstos son algunos enlaces relevantes:

  • Package javax.tools - Sirve de interfaz para herramientas que pueden ser invocados desde un programa, por ejemplo, los compiladores.
  • JavaCompiler - la interfaz implementada por el compilador
  • FileObject - la interfaz que el compilador utiliza para representar los archivos de origen; p.ej. en diagnóstico Tenga en cuenta el método toUri()!
Cuestiones relacionadas