Linux Debian (Ubuntu) — прописываем CLASSPATH для java

Как известно, 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