javac错误消息不显示整个文件路径

时间:2011-08-21 04:10:00

标签: java vim compiler-errors javac openjdk

使用javac(或ant任务)时,错误消息不包括整个文件路径,它只包含文件名。例如,

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

我想要的是,

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

我的问题是,如果没有给出整个文件路径,vim quickfix不起作用,而不仅仅是文件名。只有文件名,运行后会打开一个新的空文件:make。

我正在使用:

  • Debian wheezy
  • openjdk-6-jdk v6b23~pre7-1
  • javac v1.6.0_23

1 个答案:

答案 0 :(得分:1)

我认为没有一种简单的方法可以做到这一点。

但是,我认为有一种复杂的方式。它主要涉及编写自己的编译器运行程序,该运行程序利用JDK安装在正在运行的程序中加载和运行Java编译器的能力。你需要实现很多东西,但关键是诊断处理器以你需要格式化的方式格式化编译器错误消息。

以下是一些相关链接:

  • Package javax.tools - 为可以从程序调用的工具提供接口,例如编译器。
  • JavaCompiler - 编译器实现的接口
  • FileObject - 编译器用于表示源文件的接口;例如在诊断中。请注意toUri()方法!