Spec-Zone .ru
спецификации, руководства, описания, API
|
Средство запуска Java, java, инициирует виртуальную машину Java. Поиски виртуальной машины и классы загрузок в этом порядке:
rt.jar
и несколько других важных файлов фляги..jar
файлы располагались в каталоге расширений.В действительности эти три пути поиска соединяются, чтобы сформировать простой путь к классу. Это подобно "плоскому" пути к классу, ранее используемому, но у текущей модели есть некоторые важные различия:
Классы начальной загрузки являются классами, которые реализуют Java 2 Платформы. Классы начальной загрузки находятся в rt.jar
и несколько других файлов фляги в jre/lib
каталог. Эти архивы определяются значением пути к классу начальной загрузки, который сохранен в sun.boot.class.path
системное свойство. Это системное свойство для ссылки только, и не должно быть непосредственно изменено.
Очень маловероятно, что Вы должны будете пересмотреть путь к классу начальной загрузки. Нестандартная опция,-Xbootclasspath, позволяет Вам делать так в тех редких cicrcumstances, в которых необходимо использовать различный набор базовых классов.
Отметьте, что классы, которые реализуют Java 2 инструмента SDK, находятся в отдельном архиве от классов начальной загрузки. Архив инструментов является SDK/lib/tools.jar
файл. Средства разработки добавляют этот архив к пользовательскому пути к классу, вызывая средство запуска. Однако, этот увеличенный пользовательский путь к классу только используется, чтобы выполнить инструмент. Инструменты, которые обрабатывают исходный код, javac и javadoc, используют исходный путь к классу, не увеличенную версию. (Для получения дополнительной информации см., Как Javac и Javadoc Находят Классы, ниже.)
Классы расширения являются классами, которые расширяют платформу 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. Чтобы найти пользовательские классы, средство запуска обращается к пользовательскому пути к классу - список каталогов, архивов 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
системное свойство. Возможные источники этого значения:
.
", означая, что пользовательские файлы класса являются всеми файлами класса в текущем каталоге (или под этим, если в пакете).Файл JAR обычно содержит "декларацию" - файл, который перечисляет содержание JAR. Декларация может определить путь к классу JAR, который далее расширяет путь к классу (но только загружая классы из того JAR). Классы, к которым получает доступ путь к классу JAR, находятся в следующем порядке:
javac и javadoc инструменты используют файлы класса двумя отличными способами:
Файлы класса, используемые, чтобы разрешить ссылки исходного кода, являются главным образом теми же самыми файлами класса, используемыми, чтобы выполнить javac и javadoc. Но есть некоторые важные исключения:
tools.jar
только используются, чтобы выполнить javac и javadoc. Классы инструментов не используются, чтобы не разрешить ссылки исходного кода если tools.jar
находится в пользовательском пути к классу.Если класс, на который ссылаются, определяется и в файле класса и в исходном файле, javadoc всегда использует исходный файл (javadoc, никогда не компилирует исходные файлы). В той же самой ситуации javac файлы класса использования, но автоматически перекомпилировал любые файлы класса, она решает быть устаревшим. Правила для автоматической перекомпиляции документируются в javac документ для Windows или Солярис.
По умолчанию javac и javadoc ищут пользовательский путь к классу и файлы класса и файлы исходного кода. Если-sourcepath опция определяется, javac, и javadoc ищут исходные файлы только на указанном пути исходного файла, все еще ища пользовательский путь к классу файлы класса.
Чтобы использоваться, класс или интерфейс должны быть загружены загрузчиком класса. Использование определенного загрузчика класса определяет политику безопасности, связанную с загрузчиком класса.
Программа может загрузить класс или интерфейс, вызывая loadClass метод объекта загрузчика класса. Но обычно загрузки программы класс или интерфейс просто, обращаясь к этому. Это вызывает внутренний загрузчик класса, который может применить политику безопасности к пользовательским классам и расширению. Если политика безопасности не была включена, всем классам "доверяют". Даже если политика безопасности включается, она не применяется к классам начальной загрузки, которым всегда "доверяют".
Когда включено, политика безопасности конфигурируется системой и пользовательскими файлами политики. Java 2 SDK включают системный файл политики, который предоставляет "доверенное" состояние классам расширения и устанавливает основные ограничения для пользовательских классов.
Чтобы включить или сконфигурировать политику безопасности, обратитесь к Средствам защиты.
Отметьте: Некоторая безопасность, программируя методы, которые работали с Java 1.1 платформы, является несовместимой с моделью загрузки класса Java 2 Платформы.