![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
maxius |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.4.2004 Репутация: нет Всего: нет |
Написал приложение на Java (пара тройка классов), можно ли сделать так, чтобы оно было полностью независимым т.е. чтобы оно запускалось на любой машине, не требуя установки всего компилятора, за исключением VJM. (Например как в С есть исполняющий *.exe файл). В JAVA только *.bat ???
(надеюсь проблему изложил понятно) |
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 3 Всего: 36 |
Судя по изучению структуры NetBeans IDE, jEdit etc. я обнаружил, что они все делают свой скрипт (а иногда и EXEшники) для конкретной системы. Т.е. в NetBeans IDE в папке bin находятся следующие файлы:
runide.bat - Windows runidew.exe - Windows executable runide.sh - Linux etc. Надеюсь, что помог Добавлено @ 20:01 Только что заметил, что они написали установщик (*.jar) и он настраивает всё под конкретную систему. И только что меня осенило, что если юзер поставил JVM, то ему достаточно java и java -jar -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
maxius |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.4.2004 Репутация: нет Всего: нет |
Спасибо, гляну...
|
|||
|
||||
maxius |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 30.4.2004 Репутация: нет Всего: нет |
Честно говоря понятия не имею как выполнять данную операцию.
Если правильно понял создать EXE-шник средствами Java можно ??? Это сообщение отредактировал(а) maxius - 30.4.2004, 20:21 |
|||
|
||||
DarkDS |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 748 Регистрация: 6.5.2003 Где: Таллинн, Эстония Репутация: 11 Всего: 16 |
Нет. Средствами ява создать ехе ты не можешь. Есть утилиты, которые трансируют ява байт код в машинный код (где то был тред про них) Средствами ява можно создать jar файл (как его создавать тоже тред был). А вот этот файл как раз запускается средствами JVM То есть для запуска jar файла тебе нужно: 1, Уставновленная JVM (к примеру JRE от сана) 2. сам jar файл. Запуск последнего можно произвести так: 1. java -jar yourfile.jar (это команда действует только когда в майнфест файле прописан майн класс) 2. java -cp yourfile.jar package.MainClass (если майн класс лежит в корне, то пакедж не пишется. Майн класс - класс с майн методом. пишется без расширения) Добавлено @ 22:00 ЗЫ. бат файл в чаще всего содержит одну из 2-х последних команд. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Есть утилиты которые позволяют создавать исполняемые файлы из jar-ов. Например JBuilder может такое делать, создается исполняемый файл, который по сути представляет собой jar архив с запускающим его модулем и все, есть и сторонние утилиты для этих целей. На крайний случай можно воспользоваться саморапаковывающимися архивами. Но все эти методы требуют установленной Java машины.
А по поводу полного перевода байт-кода, в native код, это на мой взгляд возможно, только в ОЧЕНЬ ограниченном числе случаев (хотя я видел упоминание о компиляторе из Java в Си). -------------------- 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 на всяких linux'ax пашет прекрасно. К сожалению на windows требует cygwin, потому что его версии, которые мне попадались были скомпилированы именно на cygwin'e. Чисто теоретически gcj можно скомпилировать например с VC++. Тогда должен работать без Cygwin'a.
|
|||
|
||||
simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 3 Всего: 36 |
А зачем это под Линуксом? Там можно настроить систему так, что Java проги будут запускаться как обычные. Т.е. не надо писать java myjavaprogram, а можно просто myjavaprogram. И чем это отличается от EXE? Под Windows, когда ставиться JRE, то все .jar файлы автоматически запускаются через javaw. Так что я просто два раза кликаю (ну или, чаще всего, нажимаю Enter) и JAR запускается. -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
Гость_maxius |
|
|||
Unregistered |
Огромное спасибо всем, я получил ответ на свой вопрос.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Такого поведения можно и в виндах добиться: достаточно прописать ассоциации class, jar и PATHEXT добавить class и jar. 2 sergej.z А можно ссылочку? -------------------- 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.
Пару пунктов за и против. пункты против существуют только для виндов:
Ну, а теперь, если тебя не смущают вышеизложенные пункты, линьки по сабжу: Проект GCJ Описание для виндов CYGWIN |
|||
|
||||
temporary |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 16.6.2003 Где: Germany Репутация: нет Всего: нет |
Тема уже была http://forum.vingrad.ru/index.php?act=ST&f=9&t=10136
|
|||
|
||||
Likurg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 25.4.2004 Репутация: нет Всего: нет |
Я создал ексешник с помощью JET, на моем компе все ок,а на чужом появляется командная строка и исчезает,ничего не запускается, что делать не подскажите?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Попробуй начать с минимума: скомпилируй HeloWorld и проверь как он работает. Если заработает то проблема в твоей программе (вернее поиск надо вести в ней), а если нет значит надо смотреть на еастройки JET-а: целевая платформа, используемые библиотеки и т.д.
-------------------- 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. |
|||
|
||||
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
Тоже попробовал jet, все зашибись, но при запуске программы появляется досовское окошко. Может кто знает как его убрать ?
|
|||
|
||||
Likurg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 25.4.2004 Репутация: нет Всего: нет |
Stvan
а ты пробовал запускать эту программку в ексешники на другом компе?где нету jet? |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: 5 Всего: 9 |
тоже пользовался JET мне непонравилось на своей скомпилил - работает на другой нет
![]() -------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
На другой не пробовал, у меня personal edition не даст собака.
А кряка нет случайно у кого-нибудь ? |
|||
|
||||
fplab |
|
|||
Unregistered |
Поглядите здесь. Сам не пробовал, но вдруг это то, что надо
|
|||
|
||||
Stvan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 28.10.2003 Репутация: нет Всего: нет |
Тоже неплохо, но она создает только запускалку.
А вот Excelsior Jet это вещчь. Попробовал я на другой машине. В общем дела обстоят так: Компилированый экзешник на другой машине просто так не работает, НО в комплект входит JetPackII. Он создает инсталяшку для вашей программы в которую пакует необходимые dll, и при запаковке также можно засунуть JRE. Получается обычная инсталяшка которая установит приложение куда указано, есть унинстал. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так тогда я смысла не вижу - берем тот же Инстал Шилдт Профешионал и делаем весьма приличную инсталяху с тем же JRE. Пакет очень мощный - на нем можно программы писать. |
|||
|
||||
Likurg |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 25.4.2004 Репутация: нет Всего: нет |
AntonSaburov
Так и делаю. |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
Ты не мог бы подсказать как ето делается в JBuilder? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Вначале создаем исполняемый JAR: File\New\Archive\Application указываем там параметры архива, Name - имя под которым он будет фигурировать в проекте, File name имя JAR-файла, можно указать чтобы используемые библиотеки добавлялись в этот же JAR (но можно в итоге получить архив весом в десяток, другой мегабайт), указываем каком классе находится main.
Затем создаем исполняемый файл: File\New\Archive\Executable JAR, аналогично даем имя и указываем ранее созданный архив (если файл не появился, то надо у проекта сделать Rebild), указываем под какие платформы мы хотим получить exe-шник и имена если надо. Это сообщение отредактировал(а) LSD - 11.12.2005, 20:54 -------------------- 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. |
|||
|
||||
ShurikA |
|
|||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: нет Всего: 3 |
LSDБлагодарю!
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да пожалуйста
![]() -------------------- 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. |
|||
|
||||
Berliner |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 803 Регистрация: 18.5.2005 Репутация: 1 Всего: 2 |
Добавлено @ 10:18 где она? |
|||
|
||||
s8e8r8g8e |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 12.5.2006 Репутация: 1 Всего: 1 |
эээ, изначально вопрос был не полностью независимым, а есть jvm,
и из-за этого тащить cygwin и всё остальное это уж слишком, достаточно потребовть например чтоб жава в путях была, тогда на сях будет одна строчка для запуска (если бат чем-то не нравится), или чуть больше строчек если ещё рядом какой конфиг положить |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Если jvm установлена, ехе не нужен. Jar также по клику запускается.
|
|||
|
||||
1802 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 20.1.2007 Репутация: нет Всего: нет |
народ! все не так просто, как вы думаете. например, я захотел отправить свою прогу по Е-маил. надо, что бы она весила как можно меньше, и работала на любой машине после установки. так как это сделать???!!! я же не буду отправлять 30-метровые письма.
|
|||
|
||||
Bozo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
||||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
1802,
Во-первых размер зависит от самой проги! Во вторых, ты можешь требовать, чтоб у клиента была установлена JVM версии тако-то, в результате твой class или jar файл "Hello world" будет весить сущие пустяки. Добавлено @ 10:35 Bozo, ты сюда хулиганить пришел?! ![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
не всегда... Если ставился Винрар, то он, зараза, ассоциации перехватывает - и по дабл-клику открывается архив. Добавлено @ 11:27 1802, единственно ограничение на машину, на которой должна запускаться твоя прога - наличие жре. В таком случае размер твоей проги, упакованной в джар будет измеряться в килобайтах. А вот если ты хочешь, чтобы она запускалась даже на машине, на которой жре не стоит, тут уже ничего не поделаешь, за все надо платить --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
У меня предложение к автору темы: написать навороченную (конкурентноспособную) игрушку, которая не зависит от операционной системы и видеокарты. И чтобы по почте посылать можно было.
Если идея покажется не самой свежей, вот второй вариант: создать программу, независимую от компьютера. -------------------- ![]() ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
И что? Тут вроде никто не говорил, что это идеальное решение, но иногда оно бывает весьма удобно. Я считаю, что прикладное приложение которое работает с сетью просто обязанно иметь exe файл. По той простой причине, что правила файервола настраиваются именно для приложения, а не для строки запуска и для файервола java -jar some.jar и java -jar other.jar, идентичны. (это в первую очередь справедливо для Windows, хотя и для *nix тоже актуально). -------------------- 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. |
|||
|
||||
val_vp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
LSD,
сорри не понял как под линём файервол (iptables) по имени программы фильтрует - он же вроде по портам по адресам и т.д. это не под...б мне это реально интересно |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
Пять баллов! ![]() Автору: не слишком ли жёсткие требования? И кто их сформулировал? -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я сам не линуксоид, просто я спросил знакомого, он сказал, что вроде это возможно сделать. -------------------- 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. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
А был же ассемблерный Doom3. 150 Кб и качество - как у его ДВДшного "прототипа" Молчу, молчу -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 15 Всего: 77 |
А что есть зависимее ассебла? Только машинный код ![]() Он может и содержимое пропарсить, если не ошибаюсь. Всё равно через него каждый битик проходит -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Под виндой же умеет, почему под никсами нельзя? -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
val_vp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
batigoal, можно но косвенно, при чем довольно сложно я поэтому и спросил как
ведь фильтр-пакетов в линуксе (iptables) работает по критериям для этого случая необходим критерий Owner, работающий по pid-ам gid-ам sid-ам вот ссылка http://www.opennet.ru/docs/RUS/iptables/#MATCHES может через проксики это как-то? сорри за оффтопик |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
val_vp, попробуй задать этот вопрос в разделе по Юниху (http://forum.vingrad.ru/Linux-Unix.html). Думаю, там помогут.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
val_vp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
batigoal, проблема решена новой версией iptables там в критериях owner появилось поле --cmd-owner <имя> - еще раз сорри за оффтопик
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |