Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Для компиляции приложений нет библиотеки swing и j


Автор: everyone 27.5.2005, 18:39
При инсталляции JSDK_1.4 в дирректории /usr/lib/ появляются две дирректории - j2se1.4-sun и jdk . В каждой из них есть папка .../lib/ и папка .../jre/lib/.
При инсталляции(простая распаковка тарбола) дополнительных классов j3d, копируются лишь .so файлы в .../jre/lib/i386/ и jar архивы в папку .../jre/lib/ext/. Приложения использующие k3d по-прежнему не работают smile; или я просмотрел, или в инструкции по инсталляции ничего иного не сказано.
Куда нужно девать классы, чтобы можно было их использовать с помощью import? Можно ли их просто вытащить из jar архивов? И можно ли доустановить библиотеку swing?

И, объясните неграмотному устройство каталога java, какие дирректории там зачем smile

Автор: AntonSaburov 27.5.2005, 18:51
Прописываешь их в CLASSPATH - т.е заводишь переменную среды

Или при запуске можно прописать нужный jar

java -cp <нужный файл> ...


Или кидаешь свой файл в jre/lib/ext

Автор: Domestic Cat 27.5.2005, 18:52
Все что нужно тебе сделать - это запустить инсталлятор, и больше ничего. Все нужные пакеты будут установлены.

Автор: simanyay 27.5.2005, 18:54
Уточни, пожалуйста, что за ОС и как ставишь JDK? Просто Sun'овская JDK на *NIXовых ОСях ставится очень просто:
1. Создаешь каталог для неё (mkdir /usr/lib/java)
2. Кидаешь туда инсталлятор (cp /home/simanyay/jdk...install.sh)
3. Запускаешь его и у тебя в папке всё лежит. Осталось только прописать PATH и CLASSPATH

А в твоём случае, насколько я понял, либо неподдерживаемая ОС либо странный пакет.

Автор: everyone 27.5.2005, 19:07
Цитата
Все что нужно тебе сделать - это запустить инсталлятор, и больше ничего. Все нужные пакеты будут установлены.

Да только нет инсталлятора j3d, честно сказать инсталляция - единственный момент когда я ненавижу Linux; весь мой инсталляционный пакет - тарбол с грудой файлов, а скачать rpm нет возможности.

Цитата
Прописываешь их в CLASSPATH - т.е заводишь переменную среды...
Или при запуске можно прописать нужный jar


Чтож, спасибо вам за опцию -cp, если не найду как прописать CLASSPATH, то, думаю, можно написать маленький sh скрипт для сборки.

__
Ось AltLinux 2.3, устанавливал из rpm. Только называется Java SDK, а не JDK, может быть в этом дело? Там есть ещё какая-то Java Blackdown, но я не стал на неё даже смотреть, понятия не имел, что увижу.

Автор: everyone 28.5.2005, 15:46
На счёт -cp - это опция java smile, я думал это для javac.
Чтож, CLASSPATH я прописал, приложения использующие j3d работают, переустановил заново JSDK_1.4 и swing тоже откуда-то появился smile .

Остался только один вопрос - где хранятся классы которые, используются в import?

На счёт правил хранения пакетов я нашёл следующее:

Цитата
Sun рекомендует использовать для этого иерархию директорий, построенную следующим образом. Самый верхний уровень иерархии должен составлять адрес сайта вашей компании, перевернутый наоборот, т.е., если адрес сайта http://java.skls.ru, то иерархия должна быть такова: ru/skls/java. Если в адресе присутствует префикс www, то он обычно опускается. Далее возможны любые варианты, главное, чтобы названия подпакетов соответствовали их содержанию.


Но, где именно находятся эти каталоги? В какой дирректории java?

Автор: batigoal 28.5.2005, 15:58
Цитата(everyone @ 28.5.2005, 16:46)
Остался только один вопрос - где хранятся классы которые, используются в import?

Это определяется твоим проектом. Допустим, у тебя есть классы FirstClass в пакете package1 и SecondClass в пакете package2. Тогда в директории твоего проекта может быть нечто подобное:

Код

/src - папка для исходных кодов
/src/package1/FirstClass.java
/src/package2/SecondClass.java

/classes - папка для скомпилированных классов
/classes/package1/FirstClass.class
/classes/package2/SecondClass.class

/lib - папка для подключаемых библиотек
/lib/lib1.jar


Соответственно, классы, которые ты используешь, могут находиться в classes, могут быть в библиотеках. Кроме того, они могут являться частью "внешней среды". Например, у Tomcat'a есть папка, в которую помещают библиотеки, видимые для всех приложений на сервере.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)