模块  java.compiler
软件包  javax.tools

Interface StandardJavaFileManager

  • All Superinterfaces:
    AutoCloseableCloseableFlushableJavaFileManagerOptionChecker

    public interface StandardJavaFileManager
    extends JavaFileManager
    文件管理器基于java.io.Filejava.nio.file.Path 获取此类实例的常用方法是使用getStandardFileManager ,例如:
      JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
       DiagnosticCollector<JavaFileObject> diagnostics =
           new DiagnosticCollector<JavaFileObject>();
       StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null); 
    此文件管理器创建一个代表普通文件对象fileszip file entries ,或类似的基于文件系统的容器中的条目。 从实现此接口的文件管理器返回的任何文件对象都必须遵循以下行为: 根据这些规则,例如,允许使用以下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 (路径未规范化)

    此接口的所有实现都必须支持表示default file system.中文件的Path对象。建议实现应支持来自任何文件系统的Path对象。

    API Note:
    此接口上的某些方法采用Collection<? extends Path>而不是Iterable<? extends Path> 这是为了防止使用单个Path意外调用该方法的可能性,因为虽然Path实现了Iterable<Path> ,但使用单个Path调用这些方法几乎永远不会是正确的,并将其视为其Iterable组件。
    从以下版本开始:
    1.6