Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Как Классы Находятся

Как Средство запуска Java Находит Классы

Средство запуска Java, java, инициирует виртуальную машину Java. Поиски виртуальной машины и классы загрузок в этом порядке:

В действительности эти три пути поиска соединяются, чтобы сформировать простой путь к классу. Это подобно "плоскому" пути к классу, ранее используемому, но у текущей модели есть некоторые важные различия:

Как Средство запуска Java Находит Классы Начальной загрузки

Классы начальной загрузки являются классами, которые реализуют Java 2 Платформы. Классы начальной загрузки находятся в rt.jar и несколько других файлов фляги в jre/lib каталог. Эти архивы определяются значением пути к классу начальной загрузки, который сохранен в sun.boot.class.path системное свойство. Это системное свойство для ссылки только, и не должно быть непосредственно изменено.

Очень маловероятно, что Вы должны будете пересмотреть путь к классу начальной загрузки. Нестандартная опция,-Xbootclasspath, позволяет Вам делать так в тех редких cicrcumstances, в которых необходимо использовать различный набор базовых классов.

Отметьте, что классы, которые реализуют Java 2 инструмента SDK, находятся в отдельном архиве от классов начальной загрузки. Архив инструментов является SDK/lib/tools.jar файл. Средства разработки добавляют этот архив к пользовательскому пути к классу, вызывая средство запуска. Однако, этот увеличенный пользовательский путь к классу только используется, чтобы выполнить инструмент. Инструменты, которые обрабатывают исходный код, javac и javadoc, используют исходный путь к классу, не увеличенную версию. (Для получения дополнительной информации см., Как Javac и Javadoc Находят Классы, ниже.)

Как Средство запуска Java Находит Классы Расширения

Классы расширения являются классами, которые расширяют платформу Java. Каждый .jar файл в каталоге расширения, jre/lib/ext, как предполагается, является расширением и загружается, используя Платформу Расширения Java. Свободные файлы класса в каталоге расширения не будут найдены. Они должны содержаться в файле .jar (или файле .zip). Нет никакой опции, предусмотрел изменение расположения каталога расширения.

Если каталог jre/lib/ext содержит многократный .jar файлы, и те файлы содержат классы с тем же самым именем, такие как:

smart-extension1_0.jar contains class smart.extension.Smart
smart-extension1_1.jar contains class smart.extension.Smart

класс, который фактически загружается, неопределен.

Как Средство запуска Java Находит Пользовательские Классы

Пользовательские классы являются классами, которые основываются на платформе Java. Чтобы найти пользовательские классы, средство запуска обращается к пользовательскому пути к классу - список каталогов, архивов JAR, и архивов ZIP, которые содержат файлы класса.

У файла класса есть подпуть, который отражает полностью определенное имя класса. Например, если класс com.mypackage.MyClass сохранен под /myclasses, тогда /myclasses должен быть в пользовательском пути к классу, и полный путь к файлу класса должен быть /myclasses/com/mypackage/MyClass.class. Если класс сохранен в названном архиве myclasses.jar, тогда myclasses.jar должен быть в пользовательском пути к классу, и файл класса должен храниться в архиве как com/mypackage/MyClass.class.

Пользовательский путь к классу определяется как строка с двоеточием (:) разделение записей пути к классу на Солярисе, и точки с запятой (;) разделение записей на системах Microsoft Windows. Средство запуска java вставляет пользовательскую строку пути к классу java.class.path системное свойство. Возможные источники этого значения:

Как Средство запуска Java Находит Классы пути к классу JAR

Файл JAR обычно содержит "декларацию" - файл, который перечисляет содержание JAR. Декларация может определить путь к классу JAR, который далее расширяет путь к классу (но только загружая классы из того JAR). Классы, к которым получает доступ путь к классу JAR, находятся в следующем порядке:

Как Javac и JavaDoc Находят Классы

javac и javadoc инструменты используют файлы класса двумя отличными способами:

Файлы класса, используемые, чтобы разрешить ссылки исходного кода, являются главным образом теми же самыми файлами класса, используемыми, чтобы выполнить javac и javadoc. Но есть некоторые важные исключения:

Если класс, на который ссылаются, определяется и в файле класса и в исходном файле, javadoc всегда использует исходный файл (javadoc, никогда не компилирует исходные файлы). В той же самой ситуации javac файлы класса использования, но автоматически перекомпилировал любые файлы класса, она решает быть устаревшим. Правила для автоматической перекомпиляции документируются в javac документ для Windows или Солярис.

По умолчанию javac и javadoc ищут пользовательский путь к классу и файлы класса и файлы исходного кода. Если-sourcepath опция определяется, javac, и javadoc ищут исходные файлы только на указанном пути исходного файла, все еще ища пользовательский путь к классу файлы класса.

Загрузка класса и Политика безопасности

Чтобы использоваться, класс или интерфейс должны быть загружены загрузчиком класса. Использование определенного загрузчика класса определяет политику безопасности, связанную с загрузчиком класса.

Программа может загрузить класс или интерфейс, вызывая loadClass метод объекта загрузчика класса. Но обычно загрузки программы класс или интерфейс просто, обращаясь к этому. Это вызывает внутренний загрузчик класса, который может применить политику безопасности к пользовательским классам и расширению. Если политика безопасности не была включена, всем классам "доверяют". Даже если политика безопасности включается, она не применяется к классам начальной загрузки, которым всегда "доверяют".

Когда включено, политика безопасности конфигурируется системой и пользовательскими файлами политики. Java 2 SDK включают системный файл политики, который предоставляет "доверенное" состояние классам расширения и устанавливает основные ограничения для пользовательских классов.

Чтобы включить или сконфигурировать политику безопасности, обратитесь к Средствам защиты.

Отметьте: Некоторая безопасность, программируя методы, которые работали с Java 1.1 платформы, является несовместимой с моделью загрузки класса Java 2 Платформы.


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами