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


Автор: Fieral 24.6.2009, 00:02
у меня тут серия вопросов возникла, возможно ответы уже озвучивались, но всё-таки, по порядку:

1) допустим я дописал java-проект (например в Eclipse или NetBeans)  - как теперь получить готовый продукт? 
 насколько я понял его нужно откомпилировать в jar файл указав стартующий класс ( с методом main(String[] args) )  - верно? или есть другие "более правильные" способы?

Автор: Sadness 24.6.2009, 00:09
Fieral, в принципе да smile сделали исполняемый jar файл и хвастаетесь всем smile Ну можете еще разворачивать свои приложения с помощью java web start.

Автор: Vasay 24.6.2009, 00:19
Если в NetBeans настройки по умолчанию не меняли - то jar создается автоматически в папке dist проекта.


Для пользователей "окошек" можно инсталятор сделать по всем правилам. 
Можно и для других систем, если не лень и они есть под рукой.

Написать подробную инструкцию по пользованию. И лицензионное соглашение smile

Автор: Fieral 24.6.2009, 00:32
Цитата

Для пользователей "окошек" можно инсталятор сделать по всем правилам. 
Можно и для других систем, если не лень и они есть под рукой.


а как можно сделать инсталятор? самому писать или есть стандартные пакеты? что в нём нужно обязательно настроить? ....

Автор: Vasay 24.6.2009, 00:48
Fieral

Посмотрите
http://izpack.org/


Автор: Fieral 24.6.2009, 16:09
ок

2) как запускать полученную программу?

двойным кликом по jar-ке - работает не на всех машинах - ибо зависит там от каких-то настроек OS

из под консоли? - на дворе 21 век консолью пользуются только физики и шизофреники smile 

Автор: Vasay 24.6.2009, 16:17
Fieral

Цитата

как запускать полученную программу?

двойным кликом по jar-ке - работает не на всех машинах - ибо зависит там от каких-то настроек OS

из под консоли? - на дворе 21 век консолью пользуются только физики и шизофреники smile  


Для win пишется .bat файл 
Для *n?х - .sh файл.

Автор: Fieral 24.6.2009, 16:33
3) ок, допустим, у меня в проекте использовались некоторые jar-ки и другие подпроекты (от которых зависит данный проект), 
но после компиляции я получу jar-ку только своего проекта, и при попытке запуска этой джарки будет высвечиваться ClassNotFoundException 

как решать эту проблему?
 добавлять какие-то параметры в sh/bat файлы? 
 или после компиляции "вшивать" зависимости в полученную jar-ку?
 или...?

Автор: Vasay 24.6.2009, 16:54
Цитата(Fieral @  24.6.2009,  16:33 Найти цитируемый пост)
3) ок, допустим, у меня в проекте использовались некоторые jar-ки и другие подпроекты (от которых зависит данный проект), 
но после компиляции я получу jar-ку только своего проекта, и при попытке запуска этой джарки будет высвечиваться ClassNotFoundException 

как решать эту проблему?
 добавлять какие-то параметры в sh/bat файлы? 
 или после компиляции "вшивать" зависимости в полученную jar-ку?
 или...?


можно в sh/bat, можно в манифесте прописать.

Почитайте: http://en.wikipedia.org/wiki/Classpath_(Java)

Автор: Skynin 24.6.2009, 17:31
А еще пишутся (или гуглятся) простенькие запускальщики на C/C++ которые содержат иконку, читают ini файл(или парсят параметры командной строки) с параметрами JVM и компилятся под нужную платформу.
Многие программы на java обычно и состоят из jar файлов и exe файла под винду, sh для "унихов"

Например IDE для разработки на Java smile
Или: емайл клиент Columba, рисовалка "карт памяти" Freemind,  торрент клиент Azureus, создатель удаленных дисков Wuala

Автор: m1ha 25.6.2009, 16:38
Цитата(Fieral @ 24.6.2009,  16:09)
из под консоли? - на дворе 21 век консолью пользуются только физики и шизофреники smile

конечно оффтоп) но ты нифига не прав, если тебе удобнее тыкать в иконки тыкайся дальше, но многим работать с консолью удобнее, и каждый уважающий себе програмист должен представлять как откомпилировать/запустить/создать jar через консоль, большинство HelloWorld.java учат компилировать именно в консоле и это не с проста 

Автор: sneer 2.7.2009, 02:18
по поводу Microsoft ну да только майкрософт в 21 веке Выпускает PowerShell 1.0 затем 2.0 которые являются полным аналогом unix команд.хи хи

Автор: ShellRaiser 2.7.2009, 10:33
Цитата(Fieral)
ок

2) как запускать полученную программу?

двойным кликом по jar-ке - работает не на всех машинах - ибо зависит там от каких-то настроек OS

из под консоли? - на дворе 21 век консолью пользуются только физики и шизофреники  

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

Автор: Fieral 29.10.2009, 18:22
Привет.
У меня есть папка C:\doom\[LIBS]
в ней лежат: 
Clips8.Server.jar
Clips8.Core.jar


server должен юзать классы Clips8.Core.jar, однако когда я стартую :

C:\Program Files\Far>java -Djava.security.policy=C:\\doom\\wideopen.policy -Djava.library.path=C:\\doom\\[LIBS] -jar C:\\doom\\[LIBS]\\clips8.server.jar C:\\doom\\[BOX]\\ClipsManager\\Cbox
java.lang.NoClassDefFoundError: anton/clips/boiler/Box
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at anton.clips.boiler.RunClipsLocalServer.main(RunClipsLocalServer.java:17)
Caused by: java.lang.ClassNotFoundException: anton.clips.boiler.Box
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        ... 25 more


аналогично если прогнать:
C:\Program Files\Far>set CLASSPATH=C:\\doom\\[LIBS]


C:\Program Files\Far>java -Djava.security.policy=C:\\doom\\wideopen.policy -Djava.library.path=C:\\doom\\[LIBS] -jar C:\\doom\\[LIBS]\\clips8.server.jar C:\\doom\\[BOX]\\ClipsManager\\Cbox
java.lang.NoClassDefFoundError: anton/clips/boiler/Box
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at anton.clips.boiler.RunClipsLocalServer.main(RunClipsLocalServer.java:17)
Caused by: java.lang.ClassNotFoundException: anton.clips.boiler.Box
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        ... 25 more



Автор: Fieral 29.10.2009, 19:21
таже проблема с java -Djava.security.policy=C:\doom\wideopen.policy -classpath C:\doom\[LIBS] -jar C:\doom\[LIBS]\Clips8.Server.jar C:\doom\[BOX]\ClipsManager\Cbox

Автор: ivanovpv 29.10.2009, 20:47
Цитата(Fieral @  24.6.2009,  00:02 Найти цитируемый пост)
допустим я дописал java-проект (например в Eclipse или NetBeans)  - как теперь получить готовый продукт? 


1) Надо вырубить включение отладочной информации (в нетбинсе выключить флаг в porject-properties-compiler-generate debugging info)
2) Включить обфускацию
3) Включить сжатие JAR/WAR/EAR/APK
4) Желательно выставить правильную версию продукта (Netbeans/Eclipse поддерживают ведение версий)
5) Снабдить какой ни есть докой/мануалом
6) Зафиксировать исходники выпускаемой версии - желательно в системе контроля версий пометить как branch/release
7) Выпнуть в белый свет
8) Ждать откликов от несчастных юзеров и разбирать баги

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