Сообщение об ошибке javac не отображает весь путь к файлу - PullRequest
6 голосов
/ 21 августа 2011

При использовании 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 не работает, если не указан полный путь к файлу, а не только имя файла.С помощью всего лишь имени файла после запуска открывается новый пустой файл: make.

Я использую:

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

1 Ответ

1 голос
/ 21 августа 2011

Я не думаю, что есть простой способ сделать это.

Однако я считаю, что есть сложный способ.В основном это включает в себя написание собственного запуска компилятора, который использует возможность установки JDK загружать и запускать компилятор Java внутри работающей программы.Вам нужно реализовать много вещей, но главное - это диагностический процессор, который форматирует сообщения об ошибках компилятора так, как вам нужно, чтобы они были отформатированы.

Вот несколько соответствующих ссылок:

  • Пакет javax.tools - предоставляет интерфейсы для инструментов, которые могут быть вызваны из программы, например, компиляторов.
  • JavaCompiler - интерфейс, реализованный компилятором
  • FileObject - интерфейс, используемый компилятором для представления исходных файлов;например, в диагностике.Обратите внимание на метод toUri()!
...