LINUX.ORG.RU

Java разработка на Ubuntu


0

0

Java разработка на Ubuntu

На мой взгляд получилась достаточно приятная среда для разработки Java приложений на основе Linux Ubuntu и NetBeans.

Итак, имеем ноутбук ASUS A2500L, дистрибутив Ubuntu 6.10, Sun Java SDK 1.6 (Mustang), NetBeans 5.5 с установленными Mobility Pack 5.5 и Profiler 5.5, а также интегрированный с NetBeans сервер приложений Sun Application Server 9.0_1.

Процедура установки была следующей.

1. Сначала установил Ubuntu 6.10 (локаль английская, раскладка клавиатуры русская).

2. Затем подключил софт-модем с помощью драйвера slamr. Сделал это напрямую из исходников без участия дебиановского менеджера пакетов, что не совсем хорошо. Зато модем работает :)

3. Скачал бинарник нового релиза Sun Java SDK 1.6 (Mustang), а затем превратил его с помощью java-package в полноценный пакет sun-j2sdk1.6_1.6.0_i386.deb. Установил этот пакет.

4. Установил с присланного из Праги диска NetBeans 5.5 одноименную IDE и дополняющие ее модули Mobility Pack и Profiler.

5. Установил с того же диска Sun Application Server 9.0_1, который чудесным образом сынтегрировался со средой NetBeans IDE.

6. По-умолчанию IDE имеет Metal L&F. Поэтому дополнительно в файле netbeans.conf прописал, чтобы использовалось Gtk L&F. Пишут, что Mustang нативно использует Gtk, а не эмулирует его в отличие от прежних версий. На вид вроде бы все так. Интерфейс Java программ действительно выглядит консистентно с остальными гномовскими приложениями и самой средой, что я очень высоко ценю как пользователь.

7. Снова о шрифтах... Может быть, некоторые не знают, но antialising почти всегда привязывается к конкретному монитору. Поэтому на разных мониторах этот скриншот будет выглядеть по-разному. На моем CLD мониторе английские дефолтные шрифты выглядят отлично. Русские выглядят чуточку похуже, но все же они тоже радуют глаз.

>>> Просмотр (1024x768, 181 Kb)

★★★★★

Проверено: Shaman007 ()

быдлокодеришко

anonymous
()

> Пишут, что Mustang нативно использует Gtk, а не эмулирует его в отличие от прежних версий. На вид вроде бы все так.

Это не совсем так. Все версии java пытаются изобразить gtk-виджеты - с разной долей успеха. Причем многие gtk-темы в 1.6 выглядят менее натурально, чем в 1.5, или вообще уродливо. Clearlooks, поддержка которого в 1.6 только и появилось, приятное исключение..

Например http://www.ffnn.nl/pages/gallery/default--frames394.php или http://www.ffnn.nl/pages/gallery/smokey-blue--frames406.php или http://www.ffnn.nl/pages/gallery/grand-canyon--table405.php

anonymous
()

Приятно :-)

IMHO, разрешения монитора немного не хватает, более комфортно работать в 1280.

Alter ★★
()

ГумноЖава+ГумноЭкслипс не так страшно, но ГумноЖава+ГумноНетбинс... Спасиба - проблювался....

onecooler
()

Ужоснахтунк. Панельки тоожрали 30% и без того милипизерного экрана.

Не задолбало крутить туда-суда скроллбар?

anonymousI
()
Ответ на: комментарий от Alter

> IMHO, разрешения монитора немного не хватает, более комфортно работать в 1280.

Согласен. Ограничение ноутбука. А так спасибо :)

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> А что за Джава такая?

Это стандартная сановская Java 1.6. Просто я ее превратил в дебиановский пакет. Последнее имеет смысл, потому что некоторые приложения могут требовать зависимость типа j2re >= 1.3.

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymousI

> Панельки тоожрали 30% и без того милипизерного экрана.

А какие проблемы? Панельки убираются (DoubleClick по табу) и легко настраиваются. В крайнем случае можно перейти на Metal L&F - там все будет мелко.

dave ★★★★★
() автор топика
Ответ на: комментарий от anonymous

> Это не совсем так. Все версии java пытаются изобразить gtk-виджеты - с разной долей успеха. Причем многие gtk-темы в 1.6 выглядят менее натурально, чем в 1.5, или вообще уродливо. Clearlooks, поддержка которого в 1.6 только и появилось, приятное исключение..

Я читал, что были какие-то проблемы с первыми версиями JDK 1.6, но потом вроде бы пофиксили. У меня установлена build 1.6.0-b105, пока полет нормальный :)

Насколько я знаю, история вопроса такая. Раньше просто вызывались системные библиотеки для отрисовки виджетов, но этих виджетов самих на уровне системы как бы не существовало. При таком подходе возникли проблемы в Vistа - типа не все спецэффекты стали показываться. Тогда решили заново переписать L&F так, чтобы строились родные для платформы виджеты, а Swing был бы лишь промежуточной оболочкой.

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

ибо нех пусть лучше виста подстраивается под жабу

anonymous
()
Ответ на: комментарий от KUB

eу мну тоже ебунта, на ноуте iRu кардридер пахал вроде из коробки, попробуй поставить scsi дрова

anonymous
()

>2. Затем подключил софт-модем с помощью драйвера slamr. Сделал это напрямую из исходников без участия дебиановского менеджера пакетов, что не совсем хорошо. Зато модем работает :)

Смотри в сторону sl-modem (есть и в репах убунты и дебиана), сохранишь и целостность системы и модем заставишь работать.

А скриншот не впечатлил... ничего интересного абсолютно. Не хочу обидеть, но ИМХО скрины стоит выкладывать только в случае если там сделано нечто неординарное (оригинальная и интересная тема, интересно сделаные менюшки, какие-то еще новшества), а не обычный десктоп.

Так можно поставить эту самую ubuntu 6.10, запустить калькулятор и скрин снять - будет практически тоже самое.

anonymous
()
Ответ на: комментарий от anonymous

У всех интересы разные. Меня инетересовало то, насколько удобно будет работать с Java и в частности то, как будет выглядеть Swing, и насколько хорошо последний будет дружить с основной средой, в данном случае, Гномом. А все неконсистентно неординарное я отправляю обычно сразу в /dev/null ;)

Тык, slamr вроде бы и есть sl-modem. Также для Ubuntu есть такая сборка, но она для более ранней версии ядра.

dave ★★★★★
() автор топика
Ответ на: комментарий от KUB

> А кардридер у тебя на ноуте работает ???

Нет кардридера, чтобы проверить.

Из того, что не работает, могу назвать только Hibernate, хотя Suspend работает. Возможно, нужно обновить софт. Пока не гуглил на эту тему.

dave ★★★★★
() автор топика

Я хоть и не знаю Java, но скриншот понравился Бывали тут скриншоты и похуже :-) Единственный сильный недостаток, про который уже сказали - это малый размер экрана :-(

anonymous
()
Ответ на: комментарий от anonymous

Спасибо!

Кстати, на счет маленьких размеров. Это может стать хорошим стимулом писать правильно структированный код, так чтобы каждый метод по возможности был кратким. Даже в плохом можно найти что-то хорошее :)

dave ★★★★★
() автор топика

Дефолтно, но очень симпатично. Жаба рулит, NetBeans рулит, GNOME рулит, шрифты рулят. Зачет! =)

anonymous
()
Ответ на: комментарий от Alter

> Кстати кинь строчку L&F в netbeans.conf , если не сложно. :-)

Добавил параметр с опцией laf:

netbeans_default_options="-J-Xms32m -J-Xmx128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true --laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel"

Также у меня прописана переменная ${JAVA_OPTIONS}, но, кажется, здесь она роли никакой не играет.

dave ★★★★★
() автор топика
Ответ на: комментарий от mf_amber

> а почему английская локаль?

Просто многолетняя программерская привычка... :)

К тому же, переводы иногда хромают или бывают не совсем точными. Это - общая тенденция. На Windows тоже самое.

dave ★★★★★
() автор топика
Ответ на: комментарий от vdm

> А где же русские щрифты? :)

Русские шрифты тоже есть. Например, иначе бы я не смог написать это сообщение :)

dave ★★★★★
() автор топика

> 3. Скачал бинарник нового релиза Sun Java SDK 1.6 (Mustang), а затем превратил его с помощью java-package в полноценный пакет sun-j2sdk1.6_1.6.0_i386.deb. Установил этот пакет.

а поподробнее можно как именно делал?

qWen71n ★★★
()
Ответ на: комментарий от qWen71n

Прежде я пропатчил java-package_0.28, чтобы последний "узнал" о новой версии sun-j2sdk 1.6 (пост mlind'а): http://www.ubuntuforums.org/showthread.php?t=316980&page=2

Забавно. Вроде бы уже столько времени прошло как появились релиз-кандидаты шестой версии, а затем вышел и сам релиз...

dave ★★★★★
() автор топика
Ответ на: комментарий от qWen71n

Добавление.

По той же ссылке есть уже готовые пропатченные исходники пакета java-package-0.28ubuntu2.tar.gz. Надеюсь, что в скором времени появится соответствующая поддержка и на официальных сайтах Дебиана (разумеется, уже без cуффикса :) ).

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

> netbeans_default_options="-J-Xms32m -J-Xmx128m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true --laf com.sun.java.swing.plaf.gtk.GTKLookAndFeel"

Поскольку у тебя отнюдь не макось, то исползование apple.laf.useScreenMenuBar совершенно излишне.

Плюс, я бы сам какой-нибудь сорс наваял, не открывая на всеобщее обозрение намозоливший многим глаза J2EE Blueprint example :)

За вычетом того, что в NetBeans ты хорошего кода не напишешь, зачёт.

P. S. Eclipse "нативно" GTK+ поддержиает, без свинга.

Bass ★★★★★
()
Ответ на: комментарий от Bass

> За вычетом того, что в NetBeans ты хорошего кода не напишешь, зачёт.

Судя по твоему тону, ты полагаешь, что качество кода как-то зависит от среды разработки... Ну-ну. Пиши дальше :)

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

> Судя по твоему тону, ты полагаешь, что качество кода как-то зависит от среды разработки... Ну-ну. Пиши дальше :)

Именно. Eclipse дисциплинирует прямо из коробки, NetBeans -- только после установки PMD плюс ещё нескольких средств, и то PMD -- не панацея (средней руки Java-программист обычно ставит NetBeans и прямо из коробки начинает писать говнокод).

Даже высококлассный программист допускает ошибки. В NetBeans допустить ошибку легче.

Eclipse и IDEA -- это настоящие IDE для Java.

NetBeans, JDeveloper etc. -- это RAD-средства.

И этим плохи. За вычетом случаев, когда ты по долгу службы занимаешься рисованием окошек (и ещё нескольких). Но это обычно малоинтеллектуальная работа. Point-and-Click.

Bass ★★★★★
()
Ответ на: комментарий от dave
Ответ на: комментарий от Bass

То есть ты хочешь превратить этот топик в спор Eclipse vs. IDEA vs. NetBeans vs. JDeveloper etc. Я правильно понимаю? Если да, то я не вижу предмета спора. На мой взгляд все эти среды замечательны по-своему. Я в свое время использовал каждую из них за исключением коммерческой IDEA. Остался доволен.

А качество кода в первую очередь зависит от мозгов и таланта, а во вторую от опыта. Как видишь, в моем списке зависимостей нет пункта IDE :)

Просто я застал еще те времена, когда для самой свяжей версии Java v1.01 код создавали в обычном текстовом редакторе. Поэтому не испытываю сильной зависимости от IDE и зачастую предпочитаю простенький jEdit куда более интеллектуальным монстрам.

dave ★★★★★
() автор топика
Ответ на: комментарий от dave

> То есть ты хочешь превратить этот топик в спор Eclipse vs. IDEA vs. NetBeans vs. JDeveloper etc.

Не хочу. Оригинальный тезис утверждал, что в NetBeans хорошего кода не напишешь. Это исключительно моё мнение (которое я всё-таки обосновал), и я не собираюсь его навязывать. Я тоже не люблю священные войны.

> На мой взгляд все эти среды замечательны по-своему.

Да. NetBeans хорош для клепания UI, создания веб-приложений; JDeveloper -- для того же самого плюс быстрого создания приложений, работающих с БД и UML-моделирования, но у обоих продуктов очень слабые текстовый редактор, подержка рефакторинга и средства статического анализа кода. С моей точки зрения, это критично.

> Я в свое время использовал каждую из них за исключением коммерческой IDEA.

Аналогично, с небольшими отличиями.

> А качество кода в первую очередь зависит от мозгов и таланта, а во вторую от опыта. Как видишь, в моем списке зависимостей нет пункта IDE :)

Временные затраты разные. Плюс, повторюсь, даже талантливый и опытный программист иногда ошибается.

> Просто я застал еще те времена, когда для самой свяжей версии Java v1.01 код создавали в обычном текстовом редакторе.

Я тоже. И я зачастую не в восторге от кода, который создавался в те времена. В том числе от кода, ставшего частью стандартной библиотеки. Перечитай Effective Java -- там Блох упоминает кое-какие недостатки.

> Поэтому не испытываю сильной зависимости от IDE и зачастую предпочитаю простенький jEdit куда более интеллектуальным монстрам.

А я испытываю. Хотя иногда приходится писать код и в vim в консоли, но чувствую себя некомфортно -- страховочной сетки нет, а я, как и все, иногда ошибаюсь. Моя ошибка -- лишнее потраченное время.

Bass ★★★★★
()
Ответ на: комментарий от Bass

>Eclipse и IDEA -- это настоящие IDE для Java.

>NetBeans, JDeveloper etc. -- это RAD-средства.

>И этим плохи. За вычетом случаев, когда ты по долгу службы занимаешься рисованием окошек (и ещё нескольких). Но это обычно малоинтеллектуальная работа. Point-and-Click.

Согласен. В редакторе кода важно (в порядке убывания): рефакторинг, Code Completion (автодополнение кода), Code Templates (шаблоны кода для ускорения набора), Visual Editor (для создания сложных форм), Source Reformat (форматирование исходников под конкретные по требованию заказчика). Остальное под силу JUnit и самописным скриптам Ant'а с выводом на консоль.

iZEN ★★★★★
()
Ответ на: комментарий от Bass

Скажем так: многое зависит от задачи. Если нужно написать серверное приложение, то IDE может быть крайне полезно. Запуск томката или сервера приложений с просмотром лога и сбором статистики, и все это прямо из коробки и нажатием всего пары кнопок мыши, выглядят очень заманчиво и действительно помогают затратить меньшее время на разработку. Плюс унифицированная для всех работа с контроллером версий.

Но моя специализация несколько иная. Мои интересы - узко-специализированные системы моделирования в десктопном исполнении. Поэтому и нет сильной привязки к IDE. Например, (ручным) рефакторингом пользуюсь крайне редко, ибо очень много времени уделяю правильным названиям и спецификациям с самого начала, а от отладчика уже давно пользы нет никакой при наших объемах и сложности кода - приходится выкручиваться искусственными ассертами и логерами, встроенными в сам код.

Наконец, вспомним Брукса. Когда много рутины, то IDE действительно помогает. Но это не случай нашего проекта. Польза от тех же generics будет куда большая, чем от какого-нибудь супер редактора или супер профайлера.

dave ★★★★★
() автор топика

Незнаю, незнаю...Среда разработки та приятная, а вот язык Java не очень то в общем:(

kvikni
()
Ответ на: комментарий от Bass

> Оригинальный тезис утверждал, что в NetBeans хорошего кода не напишешь.

Перефразируя известную поговорку: Плохому программисту всегда IDE мешает.

kda ★★★★★
()
Ответ на: комментарий от dave

>Скажем так: многое зависит от задачи. Если нужно написать серверное приложение, то IDE может быть крайне полезно.

Конечно полезно. Но разработчик теряет часть контроля над кодом, который генерится автоматически средой, и особенно на тем, который нельзя редактировать -- среда NetBeans, например, не позволяет редактировать часть кода, произведённого в визуальном дизайнере.

Начинающий разработчик вообще не знает полного механизма сборки проекта, а основывает своё представление на последовательности нажатия на кнопки, грубо говоря: Создай новый проект -> Нарисуй окошко -> нажми кнопку Run; работает? добавляй обработчики события к элементам управления, пиши код; снова всё работает? Тогда собирай проект -> Build -> Export to JAR. ;)

После такого совершенно невозможно понять внутреннюю суть происходящих событий, как то: организация каталожной структуры проекта (что где находится), как и скакими опциями запускается компилятор, как генерируются файлы метаинформации, как происходит сборка проекта и его ресурсов и т.д.

Многие начинали с командной строки. Для опытного программиста это -- анахронизм прошедшего, но новички этого вообще не знают и не понимают -- они умеют работать ТОЛЬКО в конкретной IDE. Это плачевно.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Именно такое состояние дел я и имел в виду.

По работе мне часто приходилось сталкиваться с народом, который умеет добавить новую функциональность к существующему проекту, только если есть _одна_ библиотека, полностью покрывающая своей функциональностью задачу, и только если эта библиотека снабжена примерами, описывающими метод решения _схожей_ или _такой_же_ задачи, как и поставленная.

Притом народ этот, вдобавок, ещё и нуждался в инструкциях.

Интегрировать две или более библиотеки или, не приведи господь, изобрести что-то своё они обычно не могли. Полное отсутствие творческой жилки, равно как и аналитических способностей.

Bass ★★★★★
()
Ответ на: комментарий от Bass

Во-первых, всех со старым Новым Годом!

Мы так можем легко превратиться в старых ворчунов. IDE хорош тем, что снижает начальный порог вхождения и может привлечь некого талантливого индивида, который бы в противном случае даже не обратил никакого внимания на Java. Разве это плохо? :)

С другой стороны, чем популярнее технология - тем больше заказов под нее. Опять же хорошо.

Профессия программиста давно стала массовой. Оборотная сторона - достаточно низкий средний уровень. Так происходит почти везде и с почти любой массовой профессией. Думаю, к этому стоит относиться философически. Все равно мы ничего не сможем изменить. Можем только усугубить, если напишем еще более суперскую IDE :)

В заключение хотел бы добавить, что за последние десять лет произошел огромный прорыв в развитии IDE, особенно в области Java и ее сводного младшего брата .NET. Теперь мы имеем массу замечательных средств разработки. И это здорово для профессионалов!

dave ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.