モジュール 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 (パスが標準化されていない)

    このインタフェースのすべての実装は、「デフォルトのファイルシステム。」内のファイルを表すPathオブジェクトをサポートする必要があります。実装は、任意のファイルシステムのPathオブジェクトをサポートする必要があります。

    APIの注:
    このインタフェースの一部のメソッドは、Iterable<? extends Path>ではなくCollection<? extends Path>を使用します。 これは、PathIterable<Path>を実装しているにもかかわらず、単一のPathでこれらのメソッドを呼び出すのは妥当ではないため、そのPathIterableとして扱われるため、誤って単一の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​(Iterable<? extends Path> paths)
        指定されたパスを表すファイル・オブジェクトを返します。
        実装要件:
        デフォルトの実装では、各パスがファイルに変換され、getJavaObjectsFromFilesが呼び出されます。 いずれかのパスをファイルに変換できない場合、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))
         
        パラメータ:
        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が出力ロケーションであり、既存のディレクトリを表していない場合
        関連項目:
        getLocation(javax.tools.JavaFileManager.Location)
      • setLocationFromPaths

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