![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| dimoZa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.10.2005 Репутация: нет Всего: нет |
Привет! Очень волнует вопрос создания еxe-файла Java программы. Конечно есть встроенная функция, начиная с версии JBuilder 7, создания экзэшника, но он запускаеться только на тех компах, у которых поставлен JDK, а мне нужно создать экзэшник такой, чтоб он мог запускаться на любом компе, не от чего не зависимо, кто знает как сделать помогите плиз.
|
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Исполнение Java-программы без JRE невозможно.
Воспользуйся поиском, тема частенько обсуждается. Существуют сторонние программы для создания exe-файлов, но все они требуют установки JRE (либо включают ее в дистрибутив). -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Есть возможность полностью отказаться от JRE (вернее она будет в виде native кода вкомпилированна в приложение). Тема действительно неоднократно обсуждалась поищи по словам Jet Excelsior и GCJ. Лично я пробовал Jet Excelsior, он действительно компилит в native код, приложение запускается без JRE, не требует никакой инсталяции. Единственное но, надо таскать с собой пару увесистых dll-ей. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| vzf |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 203 Регистрация: 10.9.2005 Репутация: нет Всего: 5 |
Ну в линуксе можно скомпилировать java файл и получить исполняемый
Точно не помню, но что то вроде > gcj Hello.java -o Hello.exe могу ошибаиться в ключах запуска. + Есть какая-то утилита от Sun чтобы получить из класса exeшник, но не помню как называется, дома посмотрю --------------------
Java - Write Once, Test EveryWhere! |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
gcj --main=Hello Hello.java -o Hello
И все. Есть и под windows и под linux -------------------- Бонифаций. |
|||
|
||||
| dimoZa |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.10.2005 Репутация: нет Всего: нет |
Это где набирать надо и как под Windows. Добавлено @ 14:23
Насколько увесистых? |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
5-30Мб. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
да ну, перестаньте, вот у меня перед глазами скомпилированная небольшая явовская програмка с swt интерфейсом. Сам exe файл - 1.2M, swt-win32-3116.dll - 311K из внешних зависимостей только kernel32.dll, advapi32.dll, msvcrt.dll, user32.dll и ws_32.dll - то естьто что обычно и использует самый стандартный экзешник. -------------------- Бонифаций. |
||||
|
|||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Я говорил про тот exe-шник, что пораждает Jet Excelsior 2. Что то тут явно не так, в состав JRE входит порядка 14000 классов. и все эти классы скомплировались в 1.2M? Да я понимаю что не все они используются, но все равно графическое приложение 1500 классов должно использовать. К тому же куда делись нативные библиотеки JRE (awt.dll, java.dll, zip.dll - да вообщем полно их там)? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
я наврал... java.dll и т.д. в gcj вообще нет. В них нету необходимости. Это же нативный компилятор, там достаточно нужный код в библиотеку закатать.. -------------------- Бонифаций. |
|||
|
||||
| dimoZa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 9.10.2005 Репутация: нет Всего: нет |
Большое спасибо всем ответившим. Из-за таких объемов логично будет использовать экзещник от Delphi, но увы я его не знаю, придеться че-нить придумывать.
|
|||
|
||||
| Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 2 Всего: 62 |
А чё он какой огромный? 56mb дистрибутивчик... авось за ночь закачаю, заценю. Кстати никто не сравнивал скорости работы .jar(.class) и откомпиленых(.exe) java-программ? А как насчёт стабильности работы, никаких глюков не наблюдалось? |
|||
|
||||
| LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да там у них своя мини IDE для компиляции (кстати явно написанная на Java).
Во первых зайди в "Очередные данные о "медленности" JAVA" и посмотри пост Бонифаций. Во вторых я сравнивал, и у меня JRE показало лучший результат чем Jet Excelsior, хотя JRE была самая последняя а Jet Excelsior годовалой давности.
Не может этого быть! В этой библиотеке содержатся native методы для всего java.lang, java.io и некоторых других. Отказаться от этих методов нельзя в принципе, поэтому или они сами их реализовывали, гарантируюя при этом одинаковость поведения с Sun-овскими методами, или просто используют уже имеющуюся библиотеку от Sun (или линкуя ее в exe-шник или динамически подключая по ходу дела). Плюс код для тех классов что исполюзуются, а байт код значительно компактнее кода x86 процессоров. Попробуй скомпилить демку Java2D из состава JDK и посмтореть сколько она будет занимать. Только для чистоты эксперимента запускай на чистой машине, где нет JRE. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
gcj для графики вообще gtk использует. Там сам экзешник маленький, но если все либы устанавливать, что ему нужны будут, то лучше уж поставить 15 МБ JRE и не мучаться.
К тому же весь пакет можно предоставить как одну программу. Посмотрите нашего охотника и инсталлятор к нему от Пегаса. Если не обращать внимание на стиль GUI, вообще можно не заметить, что прога на яве. А 15 МБ в наше время не вопрос. Хорошая прога должна минимум столько весить. Для важности |
|||
|
||||
| Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
конечно сами. Это проект GNU Classpath ,совместимость там - ну новых модных штучек типа system.out.printf там нет, определенные странности наблюдаются , но в общем достаточно полная. -------------------- Бонифаций. |
||||
|
|||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
почему gtk?? что привяжешь, то и будет использовать. swt на windows к примеру напрямую без gtk работает.. А насчет 15М jre - посмотрите: bash-2.05b$ pwd /usr/lib/j2sdk1.4.2_04/jre bash-2.05b$ du -sk . 62942 . то есть примерно 63M на windows: bash-2.05b$ pwd /win_e/jre bash-2.05b$ du -sk . 50720 . то есть 50M -------------------- Бонифаций. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Попробуй все же скомпилить Java2D. Вот она использует возможности Java2D API если не на 100% то уж на 80% точно. Мне интерестно она пойдет и насколько она шустрее будет.
P.S.
Для запуска под виндой требуется cygwin? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
нет не требуется. -------------------- Бонифаций. |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Потму что GCJ использует GTK.
Ты знаешь разницу между JRE и JSDK ? |
||||
|
|||||
| Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
обратите внимание на каталог, в котором подсчитывался обьем файлов.. Ну если вы не хотите проверить это сами, давайте посмотрим на живом примере. идем на java.sun.com, выбираем загрузку J2SE Runtime Environment 5.0 Update 5 для линукса, он по списку 15.67М, скачиваем, получаем bash-2.05b$ ls -alh drwxr-xr-x 4 walrus wheel 280 2005-10-11 12:40 . drwx--x--x 97 walrus wheel 11176 2005-10-11 09:00 .. -rw-r--r-- 1 walrus wheel 16M 2005-10-11 12:38 jre-1_5_0_05-linux-i586.bin Запускаем его, он спрашивает лицензию, производит устновку, заходим в результирующий каталог и смотрим bash-2.05b$ cd jre1.5.0_05/ bash-2.05b$ du -sk . 87377 . то есть результат после установки 87 тыщщ 1к блоков грубо говоря 87М Какие уж там 15М? там только один rt.jar на 34М -------------------- Бонифаций. |
||||
|
|||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Сносим яву с компа, совсем. Или берём комп. на котором явы не существовало ещё.
Идём на http://www.hunter.vingrad.ru/?view=downloads и качаем по первой ссылке Охотник 1.0 c JRE. Запускаем инсталлятор. Работает Всё удовольствие - 15.37 Мб Ясное дело, что он распакуется и займёт сколько ему надо. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |