Будем хранить все наши 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;Второй файл - aga.java, в нем будет храниться class aga:
public class test{
public static void main(String s[]){
aga A = new aga();
System.out.println(A.aga);
};
};
package for_testing;Что же мы делаем? Мы создаем папку /home/username/workspace/for_testing, причем имя этой папки должно совпадать с именем пакета, которое задается в строчке "package for_testing;". Далее добавляем путь к папке workspace в переменную CLASSPATH:
class aga{
String aga="aga";
}
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
2 комментария:
Да, если долго программировать в Eclipse или netbeans, часто забываешь, какая это прелесть - classpath!
спасибо большое. а можете объяснить разницу такой установки classpath и javac -classpath ??
Отправить комментарий