Package javax.tools

Interface StandardJavaFileManager

  • All Superinterfaces:
    AutoCloseable, Closeable, Flushable, JavaFileManager, OptionChecker

    public interface StandardJavaFileManager
    extends JavaFileManager
    File manager based on java.io.File and java.nio.file.Path. A common way to obtain an instance of this class is using getStandardFileManager, for example:
       JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
       DiagnosticCollector<JavaFileObject> diagnostics =
           new DiagnosticCollector<JavaFileObject>();
       StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
     
    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: According to these rules, the following URIs, for example, are allowed:
    • file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
    • jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!/com/vendora/LibraryClass.class
    Whereas these are not (reason in parentheses):
    • 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.

    Since:
    1.6