|
Модераторы: LSD, AntonSaburov |
|
hatalsky |
|
||||||||||||||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
есть такая структура каталогов
файл hello.java начинается со строки
и есть две переменные среды
переходим в каталог с исходниками
компилируем приложение так
получаем .class файл там где нужно, исполняем так(из любого каталога исполняется)
всё работает, а теперь внимание, вопрос я хочу компилировать файл так же как и исполнять из любого каталого, man javac говорит что для этого есть аргумент -sourcespath, но следующая команда нифига не помогает делаем сразу cd / что бы проверить в реальных условиях, а потом компилируем так
и видим
видимо я неправильный параметр указываю в -sourcepath но увы нигде не могу найти как это сделать правильно( может кто-то подскажет решение моей проблемы? |
||||||||||||||||
|
|||||||||||||||||
dobrolub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
параметер -sourcepath синонимичен параметру -classpath - он используется для того, чтобы указать компилятору где искать зависимости. Допустим, что ты компилируешь класс qa.Test, который зависит от qa.AbstractTest.
qa.AbstractTest в директории /tmp/abstract qa.Test в директории /tmp/test Для того чтобы скомпилировать класс qa.Test надо компилятору указать где поискать исходники зависимостей (в данном случае - qa.AbstractTest) и комманда для компиляции qa.Test будет выглядеть следующим образом. tmp $ javac -sourcepath abstract qa/Test.java javac будет комилить qa/Test.java, а когда ему понадобиться найти класс qa.AbstractTest он поищет его в директории /tmp/abstract и скомпилит его тоже. Я там случайно на минус звездочки надавил (хотел посмотреть как работает, но обратно вернуть не удалось). Извини. |
|||
|
||||
mstalker26 |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 206 Регистрация: 4.7.2009 Репутация: 4 Всего: 11 |
Отличная статья, связанная с SOURCEPATH и CLASSPATH. Так сказать факультативный материал .
http://www.ibm.com/developerworks/ru/libra...classpath-unix/ P.S. По поводу твоей строчки, разве не должно быть
P.P.S. Названия классов пишут с большой буквы Это сообщение отредактировал(а) mstalker26 - 12.12.2010, 16:52 --------------------
Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом. |
|||
|
||||
hatalsky |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.6.2009 Репутация: нет Всего: нет |
dobrolub, за статью спасибо, но я её уже видел(благодаря ей с classpath разобрался, а вот sourcepath не осилил).
Как работает sourcepath теперь понял, но интересно, а так, как я хотел(компилировать из любого места не прописывая путей к исходникам) это вообще возможно? mstalker26 В вашем случае вы прописываете полный путь к исходникам, чего я как раз и хотел избежать разбираясь с sourcepath. P.S: Вы немного не точно указали путь к исходнику: ~/java/src/gui/hello.java, поправьте, мб кому-нить пригодится эта информация, а тут будет ошибка( P.P.S: И ещё вопросик: а будет ли javac брать sourcepath из какой-нить переменной среды, как она это делает в случае с classpath, и если будет, то из какой? Это сообщение отредактировал(а) hatalsky - 12.12.2010, 14:00 |
|||
|
||||
dobrolub |
|
|||
Опытный Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
Да, компилить можно из любого места прописывая путь к исходникам. Путь может быть как абсолютным /tmp/x/y/z/Z.java так и относительным к текущему каталогу.
Это сообщение отредактировал(а) dobrolub - 13.12.2010, 02:06 |
|||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |