- すべてのスーパー・インタフェース:
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
-
メソッドの詳細
-
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)を使用します。PathはIterable<Path>を実装していますが、単一のPathを渡して、そのコンポーネントのIterableとして扱うことはほとんどありません。指定されたパスを表すファイル・オブジェクトを返します。- 実装要件:
- デフォルトの実装は、各パスをファイルに緩やかに変換し、
getJavaFileObjectsFromPathsを呼び出します。IllegalArgumentExceptionは、変換が行われた時点でいずれかのパスをファイルに変換できない場合にスローされます。 - パラメータ:
paths- パスのリスト- 戻り値:
- ファイル・オブジェクトのリスト
- 例外:
IllegalArgumentException- パスのリストにディレクトリが含まれている場合、またはこのファイル・マネージャが指定されたパスをサポートしていない場合。- 導入されたバージョン:
- 9
-
getJavaFileObjects
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files) - パラメータ:
files- ファイルの配列- 戻り値:
- ファイル・オブジェクトのリスト
- 例外:
IllegalArgumentException- ファイルの配列にディレクトリが含まれている場合、またはこのファイル・マネージャが指定のパスをサポートしていない場合NullPointerException- 指定された配列にnull要素が含まれる場合
-
getJavaFileObjects
default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... 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から返された各FileにtoPath()を呼び出して形成された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
-
Pathで誤ってメソッドをコールする可能性をなくすには、getJavaFileObjectsFromPaths(Collection)を使用します。