インタフェースStandardJavaFileManager
- すべてのスーパー・インタフェース:
- AutoCloseable,- Closeable,- Flushable,- JavaFileManager,- OptionChecker
public interface StandardJavaFileManager extends JavaFileManager
java.io.Fileとjava.nio.file.Pathに基づくファイル・マネージャ。 このクラスのインスタンスを取得する一般的な方法は、getStandardFileManagerを使用することです。次に例を示します: 
 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();このファイル・マネージャは、通常のファイル、zipファイル・エントリ、または同様のファイル・システムに基づくコンテナ内のエントリを表すファイル・オブジェクトを作成します。 このインタフェースを実装しているファイル・マネージャから返されるファイル・オブジェクトは、次の動作に従う必要があります。DiagnosticCollector<JavaFileObject>diagnostics = newDiagnosticCollector<JavaFileObject>(); StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
- ファイル名は正規のものである必要はありません。
- 
     通常のファイルを表すファイル・オブジェクトの場合は次のようになります。
     - 
         メソッドFileObject.delete()はFile.delete()と同等です。
- 
         メソッドFileObject.getLastModified()はFile.lastModified()と同等です。
- 
         FileObject.getCharContent(boolean)、FileObject.openInputStream()、およびFileObject.openReader(boolean)の各メソッドは、次に示すものが成功した場合に成功する必要がある(エンコーディングの問題は無視)。newFileInputStream(newFile(fileObject.toUri()))
- 
         FileObject.openOutputStream()およびFileObject.openWriter()の各メソッドは、次に示すものが成功した場合に成功する必要がある(エンコーディングの問題は無視)。newFileOutputStream(newFile(fileObject.toUri()))
 
- 
         メソッド
- 
     FileObject.toUri()から返されるURIは次のようになる必要があります。- 絶対的である(スキーマを持つ)。
- プロセス固有のコンテキスト(現在のディレクトリなど)なしで解決できる標準化されたパス・コンポーネントを持つ(ファイル名は絶対的である必要がある)。
 
- 
     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>を使用します。 これは、PathがIterable<Path>を実装しているが、これらのメソッドを単一のPathでコールし、そのコンポーネントのIterableとして処理することはほとんど正しくないため、このような引数として1つのPathでメソッドを誤ってコールする可能性を防ぐためです。
- 導入されたバージョン:
- 1.6
- 
ネストされたクラスのサマリーネストされたクラスインタフェースjavax.tools.JavaFileManagerで宣言されたネストされたクラス/インタフェースJavaFileManager.Location
- 
メソッドのサマリー修飾子と型メソッド説明default PathasPath(FileObject file) このファイル・オブジェクト(オプションの操作)の基礎となるパス(ある場合)を返します。Iterable<? extends JavaFileObject> getJavaFileObjects(File... files) 指定されたファイルを表すファイル・オブジェクトを返します。Iterable<? extends JavaFileObject> getJavaFileObjects(String... names) 指定されたファイル名を表すファイル・オブジェクトを返します。default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths) 指定されたパスを表すファイル・オブジェクトを返します。Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files) 指定されたファイルを表すファイル・オブジェクトを返します。default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths) 非推奨。default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Collection<? extends Path> paths) 指定されたパスを表すファイル・オブジェクトを返します。Iterable<? extends JavaFileObject> 指定されたファイル名を表すファイル・オブジェクトを返します。getLocation(JavaFileManager.Location location) 指定されたロケーションに関連付けられた検索パスを返します。getLocationAsPaths(JavaFileManager.Location location) 指定されたロケーションに関連付けられた検索パスを返します。booleanisSameFile(FileObject a, FileObject b) 2つのファイル・オブジェクトを比較し、それらが同一の正規のファイル、zipファイル・エントリ、またはファイル・システムに基づくコンテナ内のエントリを表している場合はtrueを返します。voidsetLocation(JavaFileManager.Location location, Iterable<? extends File> files) 指定された検索パスを指定されたロケーションに関連付けます。default voidsetLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths) 指定された検索パスを指定されたモジュールおよびロケーションに関連付けます。このロケーションは、モジュール指向または出力のロケーションである必要があります。default voidsetLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths) 指定された検索パスを指定されたロケーションに関連付けます。default void文字列または一連の文字列からパスを生成するために使用できるファクトリを指定します。インタフェースjavax.tools.JavaFileManagerで宣言されたメソッドclose, contains, flush, getClassLoader, getFileForInput, getFileForOutput, getFileForOutputForOriginatingFiles, getJavaFileForInput, getJavaFileForOutput, getJavaFileForOutputForOriginatingFiles, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferBinaryName, inferModuleName, list, listLocationsForModulesインタフェースjavax.tools.OptionCheckerで宣言されたメソッドisSupportedOption
- 
メソッドの詳細- 
isSameFileboolean isSameFile(FileObject a, FileObject b) 2つのファイル・オブジェクトを比較し、それらが同一の正規のファイル、zipファイル・エントリ、またはファイル・システムに基づくコンテナ内のエントリを表している場合はtrueを返します。- 定義:
- isSameFile、インタフェース- JavaFileManager
- パラメータ:
- a- ファイル・オブジェクト
- b- ファイル・オブジェクト
- 戻り値:
- 指定されたファイル・オブジェクトが同じ正規ファイル、zipファイル・エントリまたはパスを表す場合はtrue、それ以外の場合はfalse
- スロー:
- IllegalArgumentException- 一方の引数が別のファイル・マネージャ実装で作成された場合
 
- 
getJavaFileObjectsFromFilesIterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files) 指定されたファイルを表すファイル・オブジェクトを返します。- パラメータ:
- files- ファイルのリスト
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- ファイルのリストにディレクトリが含まれる場合
 
- 
getJavaFileObjectsFromPathsdefault 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)を使用します。PathはIterable<Path>を実装していますが、単一のPathを渡して、そのコンポーネントのIterableとして扱うことはほとんどありません。指定されたパスを表すファイル・オブジェクトを返します。- 実装要件:
- デフォルトの実装は、各パスをファイルに緩やかに変換し、getJavaFileObjectsFromPathsを呼び出します。IllegalArgumentExceptionは、変換が行われた時点でいずれかのパスをファイルに変換できない場合にスローされます。
- パラメータ:
- paths- パスのリスト
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- パスのリストにディレクトリが含まれている場合、またはこのファイル・マネージャが指定されたパスをサポートしていない場合。
- 導入されたバージョン:
- 9
 
- 
getJavaFileObjectsIterable<? extends JavaFileObject> getJavaFileObjects(File... files) - パラメータ:
- files- ファイルの配列
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- ファイルの配列にディレクトリが含まれている場合、またはこのファイル・マネージャが指定のパスをサポートしていない場合
- NullPointerException- 指定された配列にnull要素が含まれる場合
 
- 
getJavaFileObjectsdefault Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths) - 実装要件:
- デフォルトの実装は、getJavaFileObjectsFromPaths(Collection)がスローした場合のみNullPointerExceptionをスローします。
- パラメータ:
- paths- パスの配列
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- ファイルの配列にディレクトリが含まれている場合、またはこのファイル・マネージャが指定のパスをサポートしていない場合
- NullPointerException- 指定された配列にnull要素が含まれる場合
- 導入されたバージョン:
- 9
 
- 
getJavaFileObjectsFromStringsIterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names) 指定されたファイル名を表すファイル・オブジェクトを返します。- パラメータ:
- names- ファイル名のリスト
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- ファイル名のリストにディレクトリが含まれる場合
 
- 
getJavaFileObjectsIterable<? extends JavaFileObject> getJavaFileObjects(String... names) 指定されたファイル名を表すファイル・オブジェクトを返します。 同等の簡易メソッドは、次のとおりです。getJavaFileObjectsFromStrings(Arrays.asList(names))- パラメータ:
- names- ファイル名のリスト
- 戻り値:
- ファイル・オブジェクトのリスト
- スロー:
- IllegalArgumentException- ファイル名の配列にディレクトリが含まれる場合
- NullPointerException- 指定された配列にnull要素が含まれる場合
 
- 
setLocationvoid setLocation(JavaFileManager.Location location, Iterable<? extends File> files) throws IOException 指定された検索パスを指定されたロケーションに関連付けます。 以前の値はすべて破棄されます。 ロケーションがモジュール指向または出力ロケーションである場合、setLocationForModuleによって設定されたモジュール固有の関連付けは取り消されます。- パラメータ:
- location- 場所
- files- ファイルのリスト(- nullがこのロケーションに対してデフォルトの検索パスを使用する場合)
- スロー:
- IllegalArgumentException-- locationが出力ロケーションで、- filesに正確に1つの要素が含まれていない場合
- IOException-- locationが出力ロケーションであり、既存のディレクトリを表していない場合
- 関連項目:
 
- 
setLocationFromPathsdefault 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
- 関連項目:
 
- 
setLocationForModuledefault 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
- 関連項目:
 
- 
getLocationIterable<? extends File> getLocation(JavaFileManager.Location location) 指定されたロケーションに関連付けられた検索パスを返します。- パラメータ:
- location- 場所
- 戻り値:
- このロケーションに関連する検索パスがない場合はファイルのリストまたはnull
- スロー:
- IllegalStateException- 検索パスの要素がFileに変換できない場合、または検索パスを単純な一連のファイルとして表現できない場合。
- 関連項目:
 
- 
getLocationAsPathsdefault Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location) 指定されたロケーションに関連付けられた検索パスを返します。- 実装要件:
- デフォルトの実装ではgetLocationを呼び出し、getLocationから返された各FileにtoPath()を呼び出して形成されたIterableを返します。
- パラメータ:
- location- 場所
- 戻り値:
- このロケーションに関連する検索パスがない場合は、パスのリストまたはnull
- スロー:
- IllegalStateException- 検索パスを単純な一連のパスとして表現できない場合。
- 導入されたバージョン:
- 9
- 関連項目:
 
- 
asPathdefault Path asPath(FileObject file) このファイル・オブジェクト(オプションの操作)の基礎となるパス(ある場合)を返します。FileSystemから派生したファイル・オブジェクト(デフォルトのファイル・システムを含む)には、通常、対応する基礎となるPathオブジェクトがあります。 そのような場合、このメソッドを使用してそのオブジェクトにアクセスできます。- 実装要件:
- デフォルトの実装では、すべてのファイルに対してUnsupportedOperationExceptionがスローされます。
- パラメータ:
- file- ファイル・オブジェクト
- 戻り値:
- 同じ基礎となるファイルシステム・アーティファクトを表すパス
- スロー:
- IllegalArgumentException- ファイル・オブジェクトに基本パスがない場合
- UnsupportedOperationException- 操作がこのファイル・マネージャによってサポートされていない場合
- 導入されたバージョン:
- 9
 
- 
setPathFactorydefault void setPathFactory(StandardJavaFileManager.PathFactory f) 文字列または一連の文字列からパスを生成するために使用できるファクトリを指定します。 このメソッドがコールされない場合、getPathメソッドがjava.nio.file.Paths.get(first, more)のコールと同等であるファクトリが使用されます。- 実装要件:
- このメソッドのデフォルトの実装では、提供されているファクトリは無視されます。
- パラメータ:
- f- ファクトリ
- 導入されたバージョン:
- 9
 
 
- 
Pathで誤ってメソッドをコールする可能性をなくすには、getJavaFileObjectsFromPaths(Collection)を使用します。