Spec-Zone.ru › OpenJDK 27

Интерфейс StandardJavaFileManager

Все суперинтерфейсы:
AutoCloseable, Closeable, Flushable, JavaFileManager, OptionChecker
public interface StandardJavaFileManager extends JavaFileManager
Менеджер файлов, основанный на java.io.File и java.nio.file.Path. Обычно экземпляр этого класса получают с помощью getStandardFileManager, например:
  JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
  DiagnosticCollector<JavaFileObject> diagnostics =
      new DiagnosticCollector<JavaFileObject>();
  StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
Этот менеджер файлов создает файловые объекты, представляющие обычные файлы, записи ZIP-файлов или записи в контейнерах на основе аналогичных файловых систем. Любой файловый объект, возвращаемый менеджером файлов, реализующим этот интерфейс, должен соответствовать следующим требованиям:
  • Имена файлов не обязаны быть каноническими.
  • Для файловых объектов, представляющих обычные файлы:
    • метод FileObject.delete() эквивалентен File.delete(),
    • метод FileObject.getLastModified() эквивалентен File.lastModified(),
    • методы FileObject.getCharContent(boolean), FileObject.openInputStream() и FileObject.openReader(boolean) должны выполняться успешно, если успешно выполняется следующий код (без учета проблем кодировки):
      new FileInputStream(new File(fileObject.toUri()))
      
    • а методы FileObject.openOutputStream() и FileObject.openWriter() должны выполняться успешно, если успешно выполняется следующий код (без учета проблем кодировки):
      new FileOutputStream(new File(fileObject.toUri()))
      
  • URI, возвращаемый методом FileObject.toUri(),
    • должен быть абсолютным (схема должна быть указана), и
    • должен содержать нормализованный компонент пути, который можно разрешить без контекста, зависящего от конкретного процесса, например текущего каталога (имена файлов должны быть абсолютными).
Согласно этим правилам, например, допустимы следующие URI:
  • file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
  • jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!/com/vendora/LibraryClass.class
А следующие URI недопустимы (причина указана в скобках):
  • 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 (путь не нормализован)

Все реализации этого интерфейса должны поддерживать объекты Path, представляющие файлы в файловой системе по умолчанию. Рекомендуется также поддерживать объекты Path из любых файловых систем.

Примечание к API:
Некоторые методы этого интерфейса принимают Collection<? extends Path> вместо Iterable<? extends Path>. Это позволяет избежать случайного вызова метода с единственным Path в качестве аргумента, поскольку, хотя Path реализует Iterable<Path>, почти никогда не бывает правильным вызывать эти методы с единственным Path и обрабатывать его как Iterable его компонентов.
Начиная с версии:
1.6

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static interface  StandardJavaFileManager.PathFactory
Фабрика для создания объектов Path из строк.

Вложенные классы/интерфейсы, объявленные в интерфейсе JavaFileManager

JavaFileManager.Location
Модификатор и тип Интерфейс Описание
static interface  JavaFileManager.Location
Интерфейс для расположений файловых объектов.

Краткое описание методов

Модификатор и тип Метод Описание
default Path asPath(FileObject file)
Возвращает путь, если он есть, лежащий в основе этого файлового объекта (необязательная операция).
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
Возвращает файловые объекты, представляющие указанные файлы.
Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)
Возвращает файловые объекты, представляющие указанные имена файлов.
default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths)
Возвращает файловые объекты, представляющие указанные пути.
Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
Возвращает файловые объекты, представляющие указанные файлы.
default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
Устарело.
вместо него используйте getJavaFileObjectsFromPaths(Collection), чтобы избежать случайного вызова метода с единственным Path в качестве аргумента.
default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Collection<? extends Path> paths)
Возвращает файловые объекты, представляющие указанные пути.
Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
Возвращает файловые объекты, представляющие указанные имена файлов.
Iterable<? extends File> getLocation(JavaFileManager.Location location)
Возвращает путь поиска, связанный с указанным расположением.
default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)
Возвращает путь поиска, связанный с указанным расположением.
boolean isSameFile(FileObject a, FileObject b)
Сравнивает два файловых объекта и возвращает true, если они представляют один и тот же канонический файл, запись ZIP-файла или запись в контейнере на основе файловой системы.
void setLocation(JavaFileManager.Location location, Iterable<? extends File> files)
Связывает указанный путь поиска с указанным расположением.
default void setLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths)
Связывает указанный путь поиска с указанным модулем и расположением, которое должно быть ориентированным на модули или выходным расположением.
default void setLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths)
Связывает указанный путь поиска с указанным расположением.
default void setPathFactory(StandardJavaFileManager.PathFactory f)
Задает фабрику, которую можно использовать для создания пути из строки или последовательности строк.

Методы, объявленные в интерфейсе JavaFileManager

close, contains, flush, getClassLoader, getFileForInput, getFileForOutput, getFileForOutputForOriginatingFiles, getJavaFileForInput, getJavaFileForOutput, getJavaFileForOutputForOriginatingFiles, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferBinaryName, inferModuleName, list, listLocationsForModules
Модификатор и тип Метод Описание
void close()
Освобождает все ресурсы, открытые этим менеджером файлов прямо или косвенно.
default boolean contains(JavaFileManager.Location location, FileObject fo)
Определяет, «содержится» ли данный файловый объект в указанном расположении.
void flush()
Сбрасывает все ресурсы, открытые этим менеджером файлов для вывода прямо или косвенно.
ClassLoader getClassLoader(JavaFileManager.Location location)
Возвращает загрузчик классов для загрузки подключаемых модулей из указанного расположения, ориентированного на пакеты.
FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName)
Возвращает файловый объект для ввода, представляющий указанное относительное имя в указанном пакете в заданном расположении, ориентированном на пакеты.
FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling)
Возвращает файловый объект для вывода, представляющий указанное относительное имя в указанном пакете в заданном расположении.
default FileObject getFileForOutputForOriginatingFiles(JavaFileManager.Location location, String packageName, String relativeName, FileObject... originatingFiles)
Возвращает файловый объект для вывода, представляющий указанное относительное имя в указанном пакете в заданном расположении.
JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)
Возвращает файловый объект для ввода, представляющий указанный класс указанного вида в заданном расположении, ориентированном на пакеты.
JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling)
Возвращает файловый объект для вывода, представляющий указанный класс указанного вида в заданном расположении, ориентированном на пакеты.
default JavaFileObject getJavaFileForOutputForOriginatingFiles(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject... originatingFiles)
Возвращает файловый объект для вывода, представляющий указанный класс указанного вида в заданном расположении, ориентированном на пакеты.
default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName)
Получает расположение для именованного модуля в указанном расположении, которое может быть ориентированным на модули или выходным расположением.
default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo)
Получает расположение для модуля, содержащего определенный файл, который нужно найти в указанном расположении, которое может быть ориентированным на модули или выходным расположением.
default <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service)
Получает загрузчик служб для указанного класса службы из заданного расположения.
boolean handleOption(String current, Iterator<String> remaining)
Обрабатывает один параметр.
boolean hasLocation(JavaFileManager.Location location)
Определяет, известно ли это расположение данному менеджеру файлов.
String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
Выводит двоичное имя файлового объекта на основе расположения, ориентированного на пакеты.
default String inferModuleName(JavaFileManager.Location location)
Выводит имя модуля из его расположения, возвращаемого методом getLocationForModule или listModuleLocations.
Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse)
Перечисляет все файловые объекты, соответствующие заданным критериям в указанном расположении, ориентированном на пакеты.
default Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location)
Перечисляет расположения всех модулей в расположении, ориентированном на модули, или в выходном расположении.

Методы, объявленные в интерфейсе OptionChecker

isSupportedOption
Модификатор и тип Метод Описание
int isSupportedOption(String option)
Определяет, поддерживается ли указанный параметр и, если поддерживается, сколько аргументов он принимает.

Подробное описание методов

isSameFile

boolean isSameFile(FileObject a, FileObject b)
Сравнивает два файловых объекта и возвращает true, если они представляют один и тот же канонический файл, запись ZIP-архива или запись в любом контейнере на основе файловой системы.
Указано в:
isSameFile в интерфейсе JavaFileManager
Параметры:
a — файловый объект
b — файловый объект
Возвращает:
true, если заданные файловые объекты представляют один и тот же канонический файл, запись ZIP-архива или путь; в противном случае — false
Вызывает исключение:
IllegalArgumentException — если любой из аргументов был создан другой реализацией менеджера файлов

getJavaFileObjectsFromFiles

Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
Возвращает файловые объекты, представляющие заданные файлы.
Параметры:
files — список файлов
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если список файлов содержит каталог

getJavaFileObjectsFromPaths

default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Collection<? extends Path> paths)
Возвращает файловые объекты, представляющие заданные пути.
Требования к реализации:
Реализация по умолчанию лениво преобразует каждый путь в файл и вызывает getJavaFileObjectsFromFiles. IllegalArgumentException будет вызвано, если какой-либо из путей нельзя преобразовать в файл в момент выполнения преобразования.
Параметры:
paths — список путей
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если список путей содержит каталог или если этот менеджер файлов не поддерживает какие-либо из заданных путей
С момента:
13

getJavaFileObjectsFromPaths

@Deprecated(since="13") default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
Устарело.
вместо этого используйте getJavaFileObjectsFromPaths(Collection), чтобы исключить возможность случайного вызова метода с одним Path в качестве аргумента. Хотя Path реализует Iterable<Path>, почти никогда не будет правильным передавать один Path и обрабатывать его как Iterable его компонентов.
Возвращает файловые объекты, представляющие заданные пути.
Требования к реализации:
Реализация по умолчанию лениво преобразует каждый путь в файл и вызывает getJavaFileObjectsFromPaths. IllegalArgumentException будет вызвано, если какой-либо из путей нельзя преобразовать в файл в момент выполнения преобразования.
Параметры:
paths — список путей
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если список путей содержит каталог или если этот менеджер файлов не поддерживает какие-либо из заданных путей.
С момента:
9

getJavaFileObjects

Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
Возвращает файловые объекты, представляющие заданные файлы. Вспомогательный метод, эквивалентный:
getJavaFileObjectsFromFiles(Arrays.asList(files))
Параметры:
files — массив файлов
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если массив файлов содержит каталог или если этот менеджер файлов не поддерживает какие-либо из заданных путей
NullPointerException — если заданный массив содержит элементы null

getJavaFileObjects

default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths)
Возвращает файловые объекты, представляющие заданные пути. Вспомогательный метод, эквивалентный:
getJavaFileObjectsFromPaths(Arrays.asList(paths))
Требования к реализации:
Реализация по умолчанию вызовет NullPointerException только в том случае, если его вызовет getJavaFileObjectsFromPaths(Collection).
Параметры:
paths — массив путей
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если массив файлов содержит каталог или если этот менеджер файлов не поддерживает какие-либо из заданных путей
NullPointerException — если заданный массив содержит элементы null
С момента:
9

getJavaFileObjectsFromStrings

Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
Возвращает файловые объекты, представляющие заданные имена файлов.
Параметры:
names — список имён файлов
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если список имён файлов содержит каталог

getJavaFileObjects

Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)
Возвращает файловые объекты, представляющие заданные имена файлов. Вспомогательный метод, эквивалентный:
getJavaFileObjectsFromStrings(Arrays.asList(names))
Параметры:
names — список имён файлов
Возвращает:
список файловых объектов
Вызывает исключение:
IllegalArgumentException — если массив имён файлов содержит каталог
NullPointerException — если заданный массив содержит элементы null

setLocation

void setLocation(JavaFileManager.Location location, Iterable<? extends File> files) throws IOException
Связывает заданный путь поиска с заданным местоположением. Все предыдущие значения будут удалены. Если местоположение является модульно-ориентированным или выходным, все привязки к отдельным модулям, созданные с помощью setLocationForModule, будут отменены.
Параметры:
location — местоположение
files — список файлов; если null, используется путь поиска по умолчанию для этого местоположения
Вызывает исключение:
IllegalArgumentException — если location является выходным местоположением, а files не содержит ровно одного элемента
IOException — если location является выходным местоположением и не представляет существующий каталог
См. также:
  • getLocation(JavaFileManager.Location)

setLocationFromPaths

default void setLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths) throws IOException
Связывает заданный путь поиска с заданным местоположением. Все предыдущие значения будут удалены. Если местоположение является модульно-ориентированным или выходным, все привязки к отдельным модулям, созданные с помощью setLocationForModule, будут отменены.
Требования к реализации:
Реализация по умолчанию лениво преобразует каждый путь в файл и вызывает setLocation. IllegalArgumentException будет вызвано, если какой-либо из путей нельзя преобразовать в файл в момент выполнения преобразования.
Параметры:
location — местоположение
paths — список путей; если null, используется путь поиска по умолчанию для этого местоположения
Вызывает исключение:
IllegalArgumentException — если location является выходным местоположением, а paths не содержит ровно одного элемента или если этот менеджер файлов не поддерживает какие-либо из заданных путей
IOException — если location является выходным местоположением, а paths не представляет существующий каталог
С момента:
9
См. также:
  • getLocation(JavaFileManager.Location)

setLocationForModule

default void setLocationForModule(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths) throws IOException
Связывает заданный путь поиска с заданным модулем и местоположением, которое должно быть модульно-ориентированным или выходным. Все предыдущие значения будут удалены. Эта привязка переопределяет любую привязку по умолчанию, полученную из пути поиска, связанного непосредственно с местоположением. Все такие привязки к отдельным модулям будут отменены, если новый путь поиска будет связан с местоположением вызовом setLocation или setLocationFromPaths.
Требования к реализации:
Реализация по умолчанию вызывает UnsupportedOperationException.
Параметры:
location — местоположение
moduleName — имя модуля
paths — путь поиска, связываемый с местоположением и модулем.
Вызывает исключение:
IllegalStateException — если местоположение не является модульно-ориентированным или выходным.
UnsupportedOperationException — если эта операция не поддерживается данным менеджером файлов.
IOException — если location является выходным местоположением, а paths не представляет существующий каталог
С момента:
9
См. также:
  • setLocation(JavaFileManager.Location, Iterable)
  • setLocationFromPaths(JavaFileManager.Location, Collection)

getLocation

Iterable<? extends File> getLocation(JavaFileManager.Location location)
Возвращает путь поиска, связанный с заданным местоположением.
Параметры:
location — местоположение
Возвращает:
список файлов или null, если с этим местоположением не связан путь поиска
Вызывает исключение:
IllegalStateException — если какой-либо элемент пути поиска нельзя преобразовать в File или если путь поиска нельзя представить в виде простого набора файлов.
См. также:
  • setLocation(JavaFileManager.Location, Iterable)
  • Path.toFile()

getLocationAsPaths

default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)
Возвращает путь поиска, связанный с заданным местоположением.
Требования к реализации:
Реализация по умолчанию вызывает getLocation, а затем возвращает Iterable, сформированный вызовом toPath() для каждого File, возвращённого из getLocation.
Параметры:
location — местоположение
Возвращает:
список путей или null, если с этим местоположением не связан путь поиска
Вызывает исключение:
IllegalStateException — если путь поиска нельзя представить в виде простого набора путей.
С момента:
9
См. также:
  • setLocationFromPaths(JavaFileManager.Location, Collection)

asPath

default Path asPath(FileObject file)
Возвращает путь, лежащий в основе этого файлового объекта, если он есть (необязательная операция). Файловые объекты, созданные на основе FileSystem, включая файловую систему по умолчанию, обычно имеют соответствующий базовый объект Path. В таких случаях этот метод можно использовать для доступа к этому объекту.
Требования к реализации:
Реализация по умолчанию вызывает UnsupportedOperationException для всех файлов.
Параметры:
file — файловый объект
Возвращает:
путь, представляющий тот же объект файловой системы
Вызывает исключение:
IllegalArgumentException — если у файлового объекта нет базового пути
UnsupportedOperationException — если эта операция не поддерживается данным менеджером файлов
С момента:
9

setPathFactory

default void setPathFactory(StandardJavaFileManager.PathFactory f)
Указывает фабрику, которая может использоваться для создания пути из строки или последовательности строк. Если этот метод не вызывается, будет использоваться фабрика, чей метод getPath эквивалентен вызову java.nio.file.Paths.get(first, more).
Требования к реализации:
Реализация этого метода по умолчанию игнорирует переданную фабрику.
Параметры:
f — фабрика
С версии:
9

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API