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)
JavaFileManager.Location
Modifier and Type | Method and Description |
---|---|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(File... files)
Gets file objects representing the given files.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(String... names)
Gets file objects representing the given file names.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromFiles(Iterable<? extends File> files)
Gets file objects representing the given files.
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromStrings(Iterable<String> names)
Gets file objects representing the given file names.
|
Iterable<? extends File> |
getLocation(JavaFileManager.Location location)
Gets the 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> path)
Associates the given 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 directoryIterable<? 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
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> path) throws IOException
location
- a locationpath
- a list of files, if null
use the default
path for this locationIllegalArgumentException
- if location is an output
location and path does not contain exactly one elementIOException
- if location is an output location and path
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 pathsetLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>)
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, 2023, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.