- すべてのスーパー・インタフェース:
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)
の各メソッドは、次に示すものが成功した場合に成功する必要がある(エンコーディングの問題は無視)。new FileInputStream(new File(fileObject.toUri()))
-
FileObject.openOutputStream()
およびFileObject.openWriter()
の各メソッドは、次に示すものが成功した場合に成功する必要がある(エンコーディングの問題は無視)。new FileOutputStream(new File(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
でこれらのメソッドを呼び出すのは妥当ではないため、そのPath
のIterable
として扱われるため、誤って単一のPath
を持つメソッドを誤って呼び出す可能性を防ぐためです。コンポーネント。 - 導入されたバージョン:
- 1.6
-
ネストされたクラスのサマリー
ネストされたクラスインタフェース javax.tools.JavaFileManagerで宣言されたネストされたクラス/インタフェース
JavaFileManager.Location
-
メソッドのサマリー
修飾子と型メソッド説明default Path
asPath(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>
getJavaFileObjectsFromStrings(Iterable<String> names)
指定されたファイル名を表すファイル・オブジェクトを返します。getLocation(JavaFileManager.Location location)
指定されたロケーションに関連付けられた検索パスを返します。getLocationAsPaths(JavaFileManager.Location location)
指定されたロケーションに関連付けられた検索パスを返します。boolean
isSameFile(FileObject a, FileObject b)
2つのファイル・オブジェクトを比較し、それらが同一の正規のファイル、zipファイル・エントリ、またはファイル・システムに基づくコンテナ内のエントリを表している場合はtrueを返します。void
setLocation(JavaFileManager.Location location, Iterable<? extends File> files)
指定された検索パスを指定されたロケーションに関連付けます。default void
setLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths)
指定された検索パスを、指定されたモジュールとロケーションに関連付けます。これは、モジュール指向または出力ロケーションでなければなりません。default void
setLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths)
指定された検索パスを指定されたロケーションに関連付けます。default void
文字列または一連の文字列からパスを生成するために使用できるファクトリを指定します。インタフェース javax.tools.JavaFileManagerで宣言されたメソッド
close, contains, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, 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)指定されたパスを表すファイル・オブジェクトを返します。- 実装要件:
- デフォルトの実装では、各パスがファイルに変換され、
getJavaObjectsFromFiles
が呼び出されます。 いずれかのパスをファイルに変換できない場合、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
として扱うことはほとんどありません。指定されたパスを表すファイル・オブジェクトを返します。- 実装要件:
- デフォルトの実装では、各パスがファイルに変換され、
getJavaObjectsFromFiles
が呼び出されます。 いずれかのパスをファイルに変換できない場合、IllegalArgumentExceptionがスローされます。 - パラメータ:
paths
- パスのリスト- 戻り値:
- ファイル・オブジェクトのリスト
- 例外:
IllegalArgumentException
- パスのリストにディレクトリが含まれている場合、またはこのファイル・マネージャが指定されたパスをサポートしていない場合。- 導入されたバージョン:
- 9
-
getJavaFileObjects
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)- パラメータ:
files
- ファイルの配列- 戻り値:
- ファイル・オブジェクトのリスト
- 例外:
IllegalArgumentException
- ファイルの配列にディレクトリが含まれる場合NullPointerException
- 指定された配列にnull要素が含まれる場合
-
getJavaFileObjects
default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... 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)
-
setLocationForModule
default void setLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths) throws IOException指定された検索パスを、指定されたモジュールとロケーションに関連付けます。これは、モジュール指向または出力ロケーションでなければなりません。 以前の値はすべて破棄されます。 これは、ロケーション自体に関連付けられた検索パスから派生したデフォルトの関連付けをオーバーライドします。 setLocationまたはsetLocationFromPathsを呼び出すことで、新しい検索パスがロケーションに関連付けられている場合、そのようなモジュール固有の関連付けはすべて取消されます。- パラメータ:
location
- ロケーションmoduleName
- モジュールの名前paths
- ロケーションとモジュールに関連付ける検索パス。- 例外:
IllegalStateException
- ロケーションがモジュール指向または出力ロケーションでない場合。UnsupportedOperationException
- この操作がこのファイル・マネージャでサポートされていない場合。IOException
-location
が出力ロケーションで、paths
が既存のディレクトリを表していない場合- 導入されたバージョン:
- 9
- 関連項目:
setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>)
,setLocationFromPaths(javax.tools.JavaFileManager.Location, java.util.Collection<? extends java.nio.file.Path>)
-
getLocation
Iterable<? extends File> getLocation(JavaFileManager.Location location)指定されたロケーションに関連付けられた検索パスを返します。- パラメータ:
location
- 場所- 戻り値:
- このロケーションに関連する検索パスがない場合はファイルのリストまたは
null
- 例外:
IllegalStateException
- 検索パスの要素がFileに変換できない場合、または検索パスを単純な一連のファイルとして表すことができない場合。- 関連項目:
setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>)
,Path.toFile()
-
getLocationAsPaths
default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)指定されたロケーションに関連付けられた検索パスを返します。- 実装要件:
- デフォルトの実装では
getLocation
を呼び出し、getLocation
から返された各File
にtoPath()
を呼び出して形成されたIterable
を返します。 - パラメータ:
location
- 場所- 戻り値:
- このロケーションに関連する検索パスがない場合は、パスのリストまたは
null
- 例外:
IllegalStateException
- 検索パスを単純な一連のパスとして表現できない場合。- 導入されたバージョン:
- 9
- 関連項目:
setLocationFromPaths(javax.tools.JavaFileManager.Location, java.util.Collection<? extends java.nio.file.Path>)
-
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)
を使用します。