6

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 ウィージー
  • openjdk-6-jdk v6b23~pre7-1
  • javac v1.6.0_23
4

1 に答える 1

1

これを行う簡単な方法はないと思います。

しかし、複雑な方法があると思います。基本的には、実行中のプログラム内で Java コンパイラをロードして実行する JDK インストールの機能を利用する独自のコンパイラ ランナーを作成する必要があります。多くのものを実装する必要がありますが、重要なのは、コンパイラ エラー メッセージを必要な形式にフォーマットする診断プロセッサです。

関連するリンクを次に示します。

  • パッケージjavax.tools- プログラムから呼び出すことができるツール (コンパイラーなど) のインターフェースを提供します。
  • JavaCompiler- コンパイラによって実装されたインターフェース
  • FileObject- コンパイラがソース ファイルを表すために使用するインターフェイス。たとえば、診断で。方法に注意toUri()
于 2011-08-21T04:43:46.810 に答える