public interface StandardJavaFileManager extends JavaFileManager
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();This file manager creates file objects representing regular files, zip file entries, or entries in similar file system based containers. Any file object returned from a file manager implementing this interface must observe the following behavior:DiagnosticCollector<JavaFileObject>
diagnostics = newDiagnosticCollector<JavaFileObject>()
; StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
FileObject.delete()
is equivalent to File.delete()
,
FileObject.getLastModified()
is equivalent to File.lastModified()
,
FileObject.getCharContent(boolean)
,
FileObject.openInputStream()
, and
FileObject.openReader(boolean)
must succeed if the following would succeed (ignoring
encoding issues):
new FileInputStream(new File(fileObject.toUri()))
FileObject.openOutputStream()
, and
FileObject.openWriter()
must
succeed if the following would succeed (ignoring encoding
issues):
new FileOutputStream(new File(fileObject.toUri()))
FileObject.toUri()
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
(the file name is relative
and depend on the current directory)
jar:lib/vendorA.jar!/com/vendora/LibraryClass.class
(the first half of the path depends on the current directory,
whereas the component after ! is legal)
Test.java
(this URI depends on the current
directory and does not have a schema)
jar:///C:/Documents%20and%20Settings/UncleBob/BobsApp/../lib/vendorA.jar!com/vendora/LibraryClass.class
(the path is not normalized)
All implementations of this interface must support Path objects representing files in the default file system. It is recommended that implementations should support Path objects from any filesystem.
JavaFileManager.Location
Modifier and Type | Method and Description |
---|---|
default Path |
asPath(FileObject file)
Returns the path, if any, underlying this file object (optional operation).
|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(File... files)
Returns file objects representing the given files.
|
default Iterable<? extends JavaFileObject> |
getJavaFileObjects(Path... paths)
Returns file objects representing the given paths.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(String... names)
Returns file objects representing the given file names.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromFiles(Iterable<? extends File> files)
Returns file objects representing the given files.
|
default Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
Returns file objects representing the given paths.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromStrings(Iterable<String> names)
Returns file objects representing the given file names.
|
Iterable<? extends File> |
getLocation(JavaFileManager.Location location)
Returns the search path associated with the given location.
|
default Iterable<? extends Path> |
getLocationAsPaths(JavaFileManager.Location location)
Returns the search path associated with the given location.
|
boolean |
isSameFile(FileObject a,
FileObject b)
Compares two file objects and return true if they represent the
same canonical file, zip file entry, or entry in any file
system based container.
|
void |
setLocation(JavaFileManager.Location location,
Iterable<? extends File> files)
Associates the given search path with the given location.
|
default void |
setLocationFromPaths(JavaFileManager.Location location,
Iterable<? extends Path> paths)
Associates the given search path with the given location.
|
close, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, handleOption, hasLocation, inferBinaryName, list
isSupportedOption
boolean isSameFile(FileObject a, FileObject b)
isSameFile
in interface JavaFileManager
a
- a file objectb
- a file objectIllegalArgumentException
- if either of the arguments
were created with another file manager implementationIterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
files
- a list of filesIllegalArgumentException
- if the list of files includes
a directorydefault Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
The default implementation converts each path to a file and calls
getJavaObjectsFromFiles
.
IllegalArgumentException will be thrown if any of the paths
cannot be converted to a file.
paths
- a list of pathsIllegalArgumentException
- if the list of paths includes
a directory or if this file manager does not support any of the
given paths.Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
getJavaFileObjectsFromFiles(Arrays.asList(files))
files
- an array of filesIllegalArgumentException
- if the array of files includes
a directoryNullPointerException
- if the given array contains null
elementsdefault Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths)
getJavaFileObjectsFromPaths(Arrays.asList(paths))
paths
- an array of pathsIllegalArgumentException
- if the array of files includes
a directoryNullPointerException
- if the given array contains null
elementsIterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
names
- a list of file namesIllegalArgumentException
- if the list of file names
includes a directoryIterable<? extends JavaFileObject> getJavaFileObjects(String... names)
getJavaFileObjectsFromStrings(Arrays.asList(names))
names
- a list of file namesIllegalArgumentException
- if the array of file names
includes a directoryNullPointerException
- if the given array contains null
elementsvoid setLocation(JavaFileManager.Location location, Iterable<? extends File> files) throws IOException
location
- a locationfiles
- a list of files, if null
use the default
search path for this locationIllegalArgumentException
- if location
is an output
location and files
does not contain exactly one elementIOException
- if location
is an output location and
does not represent an existing directorygetLocation(javax.tools.JavaFileManager.Location)
default void setLocationFromPaths(JavaFileManager.Location location, Iterable<? extends Path> paths) throws IOException
The default implementation converts each path to a file and calls
getJavaObjectsFromFiles
.
IllegalArgumentException will be thrown if any of the paths
cannot be converted to a file.
location
- a locationpaths
- a list of paths, if null
use the default
search path for this locationIllegalArgumentException
- if location
is an output
location and paths
does not contain exactly one element
or if this file manager does not support any of the given pathsIOException
- if location
is an output location and
paths
does not represent an existing directorygetLocation(javax.tools.JavaFileManager.Location)
Iterable<? extends File> getLocation(JavaFileManager.Location location)
location
- a locationnull
if this location has no
associated search pathIllegalStateException
- if any element of the search path
cannot be converted to a File.setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>)
,
Path.toFile()
default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)
location
- a locationnull
if this location has no
associated search pathsetLocationFromPaths(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.nio.file.Path>)
default Path asPath(FileObject file)
FileSystem
,
including the default file system, typically have a corresponding underlying
Path
object. In such cases, this method may be
used to access that object.
The default implementation throws UnsupportedOperationException
for all files.
file
- a file objectIllegalArgumentException
- if the file object does not have an underlying pathUnsupportedOperationException
- if the operation is not supported by this file manager Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait