Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Пакеты
Раздел: Создание и Используя Пакеты
Управление Файлами Источника и Класса
Домашняя страница > Изучение Языка Java > Пакеты

Управление Файлами Источника и Класса

Много реализаций платформы Java полагаются на иерархические файловые системы, чтобы управлять источником и файлами class, хотя Спецификация языка Java не требует этого. Стратегия следующие.

Поместите исходный код для class, интерфейса, перечисления, или аннотация вводит текстовый файл, имя которого является простым именем типа и чье расширение .java. Например:

//in the Rectangle.java file 
package graphics;
public class Rectangle {
   ... 
}

Затем, поместите исходный файл в каталог, имя которого отражает имя пакета, которому принадлежит тип:

.....\graphics\Rectangle.java

Полностью определенное имя элемента пакета и пути к файлу параллельно, принимая наклонную черту влево разделителя имени файла Microsoft Windows (для Unix, используйте наклонную черту вправо).

Как следует вспомнить, условно компания использует свое инвертированное имя Интернет-домена для ее имен пакета. Компания В качестве примера, имя Интернет-домена которой example.com, предшествовал бы всем его именам пакета с com.example. Каждый компонент имени пакета соответствует подкаталогу. Так, если у компании В качестве примера был a com.example.graphics пакет, который содержал a Rectangle.java исходный файл, это содержалось бы в серии подкаталогов как это:

....\com\example\graphics\Rectangle.java

Когда Вы компилируете исходный файл, компилятор создает различный выходной файл для каждого типа, определенного в нем. Базовое имя выходного файла является именем типа, и его расширение .class. Например, если исходный файл походит на это

//in the Rectangle.java file
package com.example.graphics;
public class Rectangle {
      . . . 
}

class Helper{
      . . . 
}

тогда скомпилированные файлы будут расположены в:

<path to the parent directory of the output files>\com\example\graphics\Rectangle.class
<path to the parent directory of the output files>\com\example\graphics\Helper.class

Как .java исходные файлы, скомпилированный .class файлы должны быть в ряде каталогов, которые отражают имя пакета. Однако, путь к .class файлы не должны быть тем же самым как путем к .java исходные файлы. Можно расположить свой источник и каталоги class отдельно, как:

<path_one>\sources\com\example\graphics\Rectangle.java

<path_two>\classes\com\example\graphics\Rectangle.class

Делая это, можно дать classes каталог другим программистам, не показывая Ваши источники. Вы также должны управлять источником и файлами class этим способом так, чтобы компилятор и виртуальная машина Java (JVM) могли счесть все типы Вашим использованием программы.

Полный путь к classes каталог, <path_two>\classes, вызывается путем class, и устанавливается с CLASSPATH системная переменная. И компилятор и JVM создают путь к Вашему .class файлы, добавляя пакет называют к пути class. Например, если

<path_two>\classes

Ваш путь class, и имя пакета

com.example.graphics,

тогда компилятор и JVM ищут .class files в

<path_two>\classes\com\example\graphics.

Путь class может включать несколько путей, разделенных точкой с запятой (Windows) или двоеточие (Unix). По умолчанию компилятор и JVM ищут текущий каталог и файл JAR, содержащий классы платформы Java так, чтобы эти каталоги были автоматически в Вашем пути class.

Установка Системной Переменной ПУТИ К КЛАССУ

Вывести на экран ток CLASSPATH переменная, используйте эти команды в Windows и Unix (Оболочка Bourne):

In Windows:   C:\> set CLASSPATH
In Unix:      % echo $CLASSPATH

Удалить текущее содержание CLASSPATH переменная, используйте эти команды:

In Windows:   C:\> set CLASSPATH=
In Unix:      % unset CLASSPATH; export CLASSPATH

Установить CLASSPATH переменная, используйте эти команды (например):

In Windows:   C:\> set CLASSPATH=C:\users\george\java\classes
In Unix:      % CLASSPATH=/home/george/java/classes; export CLASSPATH

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Используя Элементы Пакета
Следующая страница: Сводка Создания и Используя Пакеты