Spec-Zone .ru
спецификации, руководства, описания, API
|
Много реализаций платформы Java полагаются на иерархические файловые системы, чтобы управлять источником и файлами class, хотя Спецификация языка Java не требует этого. Стратегия следующие.
Поместите исходный код для class, интерфейса, перечисления, или аннотация вводит текстовый файл, имя которого является простым именем типа и чье расширение .java
. Например:
//in the Rectangle.java file package graphics; public class Rectangle { ... }
Затем, поместите исходный файл в каталог, имя которого отражает имя пакета, которому принадлежит тип:
.....\graphics\Rectangle.java
Полностью определенное имя элемента пакета и пути к файлу параллельно, принимая наклонную черту влево разделителя имени файла Microsoft Windows (для Unix, используйте наклонную черту вправо).
graphics.Rectangle
graphics\Rectangle.java
Как следует вспомнить, условно компания использует свое инвертированное имя Интернет-домена для ее имен пакета. Компания В качестве примера, имя Интернет-домена которой 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