Module  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.中的文件的路径对象。建议实现应支持来自任何文件系统的路径对象。

    API Note:
    此接口上的某些方法需要Collection<? extends Path>而不是Iterable<? extends Path> 这是为了防止意外地使用一个Path的方法来调用该方法的可能性,因为尽管Path实现了Iterable<Path> ,但是使用一个Path来调用这些方法几乎是不正确的,并且将它视为其中的一个Iterable组件。
    从以下版本开始:
    1.6