モジュール 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
  • メソッドの詳細

    • isSameFile

      boolean isSameFile(FileObject a, FileObject b)
      2つのファイル・オブジェクトを比較し、それらが同一の正規のファイル、zipファイル・エントリ、またはファイル・システムに基づくコンテナ内のエントリを表している場合はtrueを返します。
      定義:
      isSameFile、インタフェースJavaFileManager
      パラメータ:
      a - ファイル・オブジェクト
      b - ファイル・オブジェクト
      戻り値:
      指定されたファイル・オブジェクトが同じ正規ファイル、zipファイル・エントリまたはパスを表す場合はtrue、それ以外の場合はfalse
      例外:
      IllegalArgumentException - 一方の引数が別のファイル・マネージャ実装で作成された場合
    • getJavaFileObjectsFromFiles

      Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
      指定されたファイルを表すファイル・オブジェクトを返します。
      パラメータ:
      files - ファイルのリスト
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - ファイルのリストにディレクトリが含まれる場合
    • getJavaFileObjectsFromPaths

      default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Collection<? extends Path> paths)
      指定されたパスを表すファイル・オブジェクトを返します。
      実装要件:
      デフォルトの実装は、各パスをファイルに緩やかに変換し、getJavaFileObjectsFromFilesを呼び出します。 IllegalArgumentExceptionは、変換が行われた時点でいずれかのパスをファイルに変換できない場合にスローされます。
      パラメータ:
      paths - パスのリスト
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - パスのリストにディレクトリが含まれているか、このファイル・マネージャが指定のパスをサポートしていない場合
      導入されたバージョン:
      13
    • getJavaFileObjectsFromPaths

      @Deprecated(since="13") default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
      非推奨。
      そのような引数を1つのPathで誤ってメソッドをコールする可能性をなくすには、getJavaFileObjectsFromPaths(Collection)を使用します。 PathIterable<Path>を実装していますが、単一のPathを渡して、そのコンポーネントのIterableとして扱うことはほとんどありません。
      指定されたパスを表すファイル・オブジェクトを返します。
      実装要件:
      デフォルトの実装は、各パスをファイルに緩やかに変換し、getJavaFileObjectsFromPathsを呼び出します。 IllegalArgumentExceptionは、変換が行われた時点でいずれかのパスをファイルに変換できない場合にスローされます。
      パラメータ:
      paths - パスのリスト
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - パスのリストにディレクトリが含まれている場合、またはこのファイル・マネージャが指定されたパスをサポートしていない場合。
      導入されたバージョン:
      9
    • getJavaFileObjects

      Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
      指定されたファイルを表すファイル・オブジェクトを返します。 同等の簡易メソッドは、次のとおりです。
      getJavaFileObjectsFromFiles(Arrays.asList(files))
      
      パラメータ:
      files - ファイルの配列
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - ファイルの配列にディレクトリが含まれている場合、またはこのファイル・マネージャが指定のパスをサポートしていない場合
      NullPointerException - 指定された配列にnull要素が含まれる場合
    • getJavaFileObjects

      default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths)
      指定されたパスを表すファイル・オブジェクトを返します。 同等の簡易メソッドは、次のとおりです。
      getJavaFileObjectsFromPaths(Arrays.asList(paths))
      
      実装要件:
      デフォルトの実装は、getJavaFileObjectsFromPaths(Collection)がスローした場合のみNullPointerExceptionをスローします。
      パラメータ:
      paths - パスの配列
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - ファイルの配列にディレクトリが含まれている場合、またはこのファイル・マネージャが指定のパスをサポートしていない場合
      NullPointerException - 指定された配列にnull要素が含まれる場合
      導入されたバージョン:
      9
    • getJavaFileObjectsFromStrings

      Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
      指定されたファイル名を表すファイル・オブジェクトを返します。
      パラメータ:
      names - ファイル名のリスト
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - ファイル名のリストにディレクトリが含まれる場合
    • getJavaFileObjects

      Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)
      指定されたファイル名を表すファイル・オブジェクトを返します。 同等の簡易メソッドは、次のとおりです。
      getJavaFileObjectsFromStrings(Arrays.asList(names))
      
      パラメータ:
      names - ファイル名のリスト
      戻り値:
      ファイル・オブジェクトのリスト
      例外:
      IllegalArgumentException - ファイル名の配列にディレクトリが含まれる場合
      NullPointerException - 指定された配列にnull要素が含まれる場合
    • setLocation

      void setLocation(JavaFileManager.Location location, Iterable<? extends File> files) throws IOException
      指定された検索パスを指定されたロケーションに関連付けます。 以前の値はすべて破棄されます。 ロケーションがモジュール指向または出力ロケーションである場合、setLocationForModuleによって設定されたモジュール固有の関連付けは取り消されます。
      パラメータ:
      location - 場所
      files - ファイルのリスト(nullがこのロケーションに対してデフォルトの検索パスを使用する場合)
      例外:
      IllegalArgumentException - locationが出力ロケーションで、filesに正確に1つの要素が含まれていない場合
      IOException - locationが出力ロケーションであり、既存のディレクトリを表していない場合
      関連項目:
    • setLocationFromPaths

      default void setLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths) throws IOException
      指定された検索パスを指定されたロケーションに関連付けます。 以前の値はすべて破棄されます。 ロケーションがモジュール指向または出力ロケーションである場合、setLocationForModuleによって設定されたモジュール固有の関連付けは取り消されます。
      実装要件:
      デフォルトの実装は、各パスをファイルに緩やかに変換し、setLocationを呼び出します。 IllegalArgumentExceptionは、変換が行われた時点でいずれかのパスをファイルに変換できない場合にスローされます。
      パラメータ:
      location - 場所
      paths - パスのリスト(nullがこのロケーションに対してデフォルトの検索パスを使用する場合)
      例外:
      IllegalArgumentException - locationが出力ロケーションで、pathsに要素が1つも含まれていない場合、またはこのファイル・マネージャが指定されたパスをサポートしていない場合
      IOException - locationが出力ロケーションで、pathsが既存のディレクトリを表していない場合
      導入されたバージョン:
      9
      関連項目:
    • setLocationForModule

      default void setLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths) throws IOException
      指定された検索パスを指定されたモジュールおよびロケーションに関連付けます。このロケーションは、モジュール指向または出力のロケーションである必要があります。 以前の値はすべて破棄されます。 これにより、ロケーション自体に関連付けられた検索パスから導出されたデフォルトの関連付けが上書きされます。 setLocationまたはsetLocationFromPathsを呼び出すことで、新しい検索パスがロケーションに関連付けられている場合、そのようなモジュール固有の関連付けはすべて取消されます。
      実装要件:
      デフォルト実装は、UnsupportedOperationExceptionをスローします。
      パラメータ:
      location - ロケーション
      moduleName - モジュールの名前
      paths - ロケーションおよびモジュールに関連付ける検索パス。
      例外:
      IllegalStateException - ロケーションがモジュール指向または出力ロケーションでない場合。
      UnsupportedOperationException - この操作がこのファイル・マネージャでサポートされていない場合。
      IOException - locationが出力ロケーションで、pathsが既存のディレクトリを表していない場合
      導入されたバージョン:
      9
      関連項目:
    • getLocation

      Iterable<? extends File> getLocation(JavaFileManager.Location location)
      指定されたロケーションに関連付けられた検索パスを返します。
      パラメータ:
      location - 場所
      戻り値:
      このロケーションに関連する検索パスがない場合はファイルのリストまたはnull
      例外:
      IllegalStateException - 検索パスの要素がFileに変換できない場合、または検索パスを単純な一連のファイルとして表現できない場合。
      関連項目:
    • getLocationAsPaths

      default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)
      指定されたロケーションに関連付けられた検索パスを返します。
      実装要件:
      デフォルトの実装ではgetLocationを呼び出し、getLocationから返された各FiletoPath()を呼び出して形成されたIterableを返します。
      パラメータ:
      location - 場所
      戻り値:
      このロケーションに関連する検索パスがない場合は、パスのリストまたはnull
      例外:
      IllegalStateException - 検索パスを単純な一連のパスとして表現できない場合。
      導入されたバージョン:
      9
      関連項目:
    • asPath

      default Path asPath(FileObject file)
      このファイル・オブジェクト(オプションの操作)の基礎となるパス(ある場合)を返します。 FileSystemから派生したファイル・オブジェクト(デフォルトのファイル・システムを含む)には、通常、対応する基礎となるPathオブジェクトがあります。 そのような場合、このメソッドを使用してそのオブジェクトにアクセスできます。
      実装要件:
      デフォルトの実装では、すべてのファイルに対してUnsupportedOperationExceptionがスローされます。
      パラメータ:
      file - ファイル・オブジェクト
      戻り値:
      同じ基礎となるファイルシステム・アーティファクトを表すパス
      例外:
      IllegalArgumentException - ファイル・オブジェクトに基本パスがない場合
      UnsupportedOperationException - 操作がこのファイル・マネージャによってサポートされていない場合
      導入されたバージョン:
      9
    • setPathFactory

      default void setPathFactory(StandardJavaFileManager.PathFactory f)
      文字列または一連の文字列からパスを生成するために使用できるファクトリを指定します。 このメソッドがコールされない場合、getPathメソッドがjava.nio.file.Paths.get(first, more)のコールと同等であるファクトリが使用されます。
      実装要件:
      このメソッドのデフォルトの実装では、提供されているファクトリは無視されます。
      パラメータ:
      f - ファクトリ
      導入されたバージョン:
      9