モジュール java.compiler
パッケージ javax.tools

インタフェースStandardJavaFileManager

すべてのスーパー・インタフェース:
AutoCloseable, Closeable, Flushable, JavaFileManager, OptionChecker

public interface StandardJavaFileManager extends JavaFileManager
java.io.Filejava.nio.file.Pathに基づくファイル・マネージャ。 このクラスのインスタンスを取得するには、通常、getStandardFileManagerを使用します。たとえば:
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics =
       new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
 
このファイル・マネージャは、通常のファイルzipファイル・エントリ、または同様のファイル・システムに基づくコンテナ内のエントリを表すファイル・オブジェクトを作成します。 このインタフェースを実装しているファイル・マネージャから返されるファイル・オブジェクトは、次の動作に従う必要があります。 これらの規則に従うと、たとえば次のようになります。
  • file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
  • jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!/com/vendora/LibraryClass.class
次のようにはなりません(括弧内は理由)。
  • file:BobsApp/Test.java (ファイル名が相対的で、現在のディレクトリに依存している)
  • jar:lib/vendorA.jar!/com/vendora/LibraryClass.class (パスの前半は現在のディレクトリに依存しますが、!の後のコンポーネントは有効です)
  • Test.java (このURIは現在のディレクトリに依存しており、スキーマを持たない)
  • jar:///C:/Documents%20and%20Settings/UncleBob/BobsApp/../lib/vendorA.jar!com/vendora/LibraryClass.class (パスが標準化されていない)

このインタフェースのすべての実装では、「デフォルトのファイルシステム」内のファイルを表すパス・オブジェクトがサポートされている必要があります。 実装では、任意のファイルシステムからのパス・オブジェクトをサポートすることをお勧めします。

APIのノート:
このインタフェースの一部のメソッドは、Iterable<? extends Path>ではなくCollection<? extends Path>を使用します。 これは、PathIterable<Path>を実装しているが、これらのメソッドを単一のPathでコールし、そのコンポーネントのIterableとして処理することはほとんど正しくないため、このような引数として1つのPathでメソッドを誤ってコールする可能性を防ぐためです。
導入されたバージョン:
1.6