Как известно, CLASSPATH — это такая переменная, в которой содержатся пути, по которым компилятор и интерпретатор JAVA пытаются найти файлы и *.class для их обработки. Рассмотрим все это на примере.
Будем хранить все наши java проекты в директории /home/username/workspace. В моем случае username заменяется на alexwinner и эта директория выглядит так: /home/alexwinner/workspace. Конечно, можно было бы перемещаться в эту директорию командой cd, создавать там файлик с кодом java, например, /home/alexwinner/workspace/blabla.java, далее выполнять
javac blabla.java
затем
java blabla
и получать результат. Но что делать в случае, когда наш класс принадлежит какому-либо пакету? Например, у нас есть 2 класса в двух файлах. Первый файл — test.java:
package for_testing;
public class test{
public static void main(String s[]){
aga A = new aga();
System.out.println(A.aga);
};
};
Второй файл — aga.java, в нем будет храниться class aga:
package for_testing;
class aga{
String aga=»aga»;
}
Что же мы делаем? Мы создаем папку /home/username/workspace/for_testing, причем имя этой папки должно совпадать с именем пакета, которое задается в строчке «package for_testing;». Далее добавляем путь к папке workspace в переменную CLASSPATH:
export CLASSPATH=$CLASSPATH:/home/username/workspace/
После этого перемещаемся в папку /home/username/workspace/for_testing и компилируем наш пакет:
javac test.java
После этого остается только запустить его. Запускать можно абсолютно из любой папки, так как путь к ней содержится в глобальной переменной CLASSPATH:
java for_testing.test
и получаем результат:
aga
Стоит заметить, что путь к этой директории будет содержаться в CLASSPATH только до конца текущего сеанса. Чтобы добавить его туда перманентно, надо выполнить следующее:
echo «export CLASSPATH=$CLASSPATH:/home/username/workspace/» >>/home/username/.bashrc
Автор: AlexWinner
Дата публикации: 2009-11-30T09:31:00.000-08:00