LINUX.ORG.RU

Статья «Java to EXE» на Javalobby


0

0

В статье рассматриваются различные методы преобразований Java-приложений в native исполняемые файлы: от программ-обёрток (wrappers) до статических Java-компиляторов. Обсуждаются плюсы и минусы каждого подхода, при этом делается внушительный обзор существующих коммерческих и бесплатных программ-утилит.

>>> Статья

anonymous

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

с точки зрения человека, далекого от java, приятная статейка. познавательная и мозг не напрягает.

// wbr

klalafuda ★☆☆
()

где бы прочитать аналогичную статью для перла?

anonymous
()

Где бы взять EXE то Java?

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

C++ не устраивает высоким порогом входа, непереносимостью, огромным количеством платных библиотек, отсутствием промышленного стандарта доступа к БД (JDBC) и устаревшими архитектурными решениями типа ручного управления памятью.

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

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

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

> граждать сложностью средств разработки

вы - идиот. оградитесь от меня!

--седайко стюмчик

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

>вы - идиот. оградитесь от меня!

Это - ПЯТЬ!

> граждать сложностью средств разработки

А жить нада в пещерах, жрать непрожаренное мясо, зато зубы будут белые и блестящие. Ходить в шкурах и с деревянными палицами. И песать каждый день по 100 циклов for (i=1, i<100, i++) {} вместо того, чтобы ДУМАТЬ, как этот мартышкин труд переложить на быстрый мозг ЦПУ.

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

> а не на уродливой Java

Правильней "на уродливой низкоуровневой Java, в которой отсутствуют средства метапрограммирования".

P.S. Отстой это рулез. Рулез это отстой.

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

> и только PyPy вместо JVM

JVM таки написана на жабе? Чего только на ЛОРе не узнаешь...

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

>C++ не устраивает высоким порогом входа

похоже анонимус не вошел :)

> непереносимостью

вообще-то с++ - стандартизованный язык и программа, написанная на с++ - работает на любой платформе, имеющей с++ компилятор, соответствующий этому стандарту :)

>огромным количеством платных библиотек

с каких пор это стало недостатком? ;)

>отсутствием промышленного стандарта доступа к БД (JDBC)

лично я проблемы не вижу :) Кстати, можно ссылочку на сертификацию скажем ISO этого "промышленного стандарта"?

> и устаревшими архитектурными решениями типа ручного управления памятью.

и чем это они устаревшие, эти решения, и кто это определил?

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

> вообще-то с++ - стандартизованный язык и программа, написанная на с++ - работает на любой платформе, имеющей с++ компилятор, соответствующий этому стандарту :)

то я слышал вопли про 2.95, а теперь про 3.4 постоянно от этих горе-плюсовиков... сам то с java 1.4 на 5 совсем без проблем пересел :)

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

> вместо того, чтобы ДУМАТЬ, как этот мартышкин труд переложить на быстрый мозг ЦПУ.

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

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

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

"аффторы" языка (почти любого, обобщенного языка) уже устали повторять, что если не умеешь пользоваться какой-то фичей языка, которая "усложняет" тебе жизнь своим существованием - не пользуйся ей. Пользуйся тем, что понимаешь. Соответственно и самим языком можно пользоваться или не пользоваться. Не знаешь с++ - пиши на Java, Python или хоть Visual Basic :) Только не говори при этом про ущербность языка, которого не понимаешь :)

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

Ущербен тот язык, который не даёт возможности делать сложные вещи простыми. C++ позволяет создавать абстракции довольно высокого порядка, и в этом он превосходит Java, но отстаёт и от Python, и от Lisp, и даже от Tcl. Очень сильно отстаёт.

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

Сколько вылил всего на жаву и с++ одновременно :) И при этом ничего конкретного. Цель языкового средства - не создавать абстракции, а получить за разумное время конечный продукт :)

Я не берусь в данном случае судить кто кого превосходит и от кого отстаёт, но факт в том, что язык с++ пока что имхо позволяет решать более широкий круг задач, чем всё перечисленное далее. Жава и Python в этом плане, нужно признать, довольно близко приблизились к нему.

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

Попрошу без вызывающе неверной информации.

Язык C++ и в подмётки не годится языку Common Lisp. По всем параметрам. Кроме вышеупомянутого порога вхождения. И всё - благодаря как раз возможности реализации абстракций высшего порядка. Пока программист на C++ будет ручками воевать со всякими низкоуровневыми проблемами, программист на Лиспе просто опишет формулировку задачи своими словами, и она же будет почти готовым решением. Коротко, быстро, дёшево.

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

Я говорил о решаемом круге задач. Давай еще вспомним про SmallTalk, вот уж куда крутые абстракции, с++ отдыхает :) Но кто что слышал про современные приложеня на SmallTalk или Lisp? Не считая емакса, разумеется.

В чем "вызывающе" или хотя бы просто неверная информация? ;)

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

> Я говорил о решаемом круге задач.

И какие же задачи лучше решать на C++, чем на Лиспе? Назови хотя бы одну, героем будешь.

> Но кто что слышал про современные приложеня на SmallTalk или Lisp?

То, что ты ничего не слышал и мало что знаешь - твои личные проблемы, не так ли?

> В чем "вызывающе" или хотя бы просто неверная информация? ;)

В якобы превосходстве этого отстойного C++.

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

> И какие же задачи лучше решать на C++, чем на Лиспе? Назови хотя бы одну, героем будешь.

Давай операционную систему напишем на лиспе, как тебе примерчик, а? Хотя бы уровня Hurd.

> То, что ты ничего не слышал и мало что знаешь - твои личные проблемы, не так ли?

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

> В якобы превосходстве этого отстойного C++.

я еще раз повторяю, никогда, _никогда_ не называй вещь отстойной, без достаточных на то оснований. Вот это как раз и называется "вызывающе неверная информация".

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

> Давай операционную систему напишем на лиспе, как тебе примерчик, а?

Операционная система на Лиспе образца 1985-го года по возможностям превосхидила большинство современных, ныне здравствующих. И уж тем более игрушкам вроде Hurd до такого уровня никогда не дотянутся.

> Боюсь я не один такой, кто не слышал и мало что знает.

Грамотных людей вообще мало. Система образования у нас больная на все ноги.

> я еще раз повторяю, никогда, _никогда_ не называй вещь отстойной, без достаточных на то оснований.

Попрошу сбавить менторский тон. Не стоит применять его на фоне столь очевидной собственной безграмотности.

У меня есть все основания называть C++ отстойным.

Кстати. На Visual Basic пишут ещё больше, чем на C++ или Common Lisp. Он лучше, чем C++, да?

В общем, гражданин. Давайте сюда объективные преимущества C++ перед Common Lisp. Не надо петь про то, сколько софта на чём написано - это не серьёзный подход. Анализируем сами языки.

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

Ну что флеймить по поводу и без повода. Каждое решение приспособлено для своих типов задач, и именно их удобно их решать. Бесполезно сравнивать Java и C++, то всё равно что сравнивать POSIX и WIN32. Понятно, что Java - это policy и во многом это плюс для широкого класса задач (например embedded). C/C++ это скорее tools, соответственно нужно уметь этим пользоваться, это даёт большую свободу реализации задачи, но во многих случаях это минус, особенно когда над проектом работает куча народа с "разным" мышлением (а оно обязательно будет разным, если это не просто тупые кодеры).

А переносимость - это полное заблуждение. Перенести под собранную из разных компонентов POSIX-совместимую систему прогу на с/c++ на порядок проще, чем JVM, ибо её там даже компилить не обязательно - можно собрать на хост-системе. А вот пойдите-ка перенесите хотя-бы за пару недель JVM скажем на L4...

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

> В общем, гражданин. Давайте сюда объективные преимущества C++ перед Common Lisp. Не надо петь про то, сколько софта на чём написано - это не серьёзный подход. Анализируем сами языки.

А зачем нужен язык без "codebase"?

Ну это так, к слову. :-)

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

боюсь вследствие собственной безграмотности объективно могу постараться прокомментировать только одно:

> Кстати. На Visual Basic пишут ещё больше, чем на C++ или Common Lisp. Он лучше, чем C++, да?

Да. Лучше. Раз пишут больше - значит лучше. Только вот софт у меня на компьютере написан в основном на Си и С++. Изредка встречаются Perl, Java, иногда Python. Практически никогда - Visual Basic. B уж совсем никогда - lisp. За исключением емакса, разумеется.

По поводу же операционной системы, которая написана на лиспе 1985го года выпуска и лучшей современных - это таки да - это таки огромный пробел в образовании. Чего врать ;)

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

Ну ну ну. И большую же ты "codebase" на C++ заюзать сможешь... С++ - это тебе не Perl с его CPAN-ом, культуры написания реюзабельных компонентов в среде приплюснутых не наблюдается.

С другой стороны, есть http://cliki.net/

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

> Да. Лучше. Раз пишут больше - значит лучше.

Нет. Не лучше. Просто это означает, что он более разрекламирован среди ламеров. А ламеров - гораздо больше, чем хороших и умных людей. На порядки больше.

> B уж совсем никогда - lisp. За исключением емакса, разумеется.

Maxima или Axiom не используем, да?

Софта на Лиспе мало, но качество его значительно превосходит многочисленные Сишные поделки. И мало его не от того, что он плохо подходит для написания софта, а от того, что мало тех, кто умеет писать софт. И научиться никак не труднее, чем тому же С++ - просто ламеры не в курсе, что надо изучать Common Lisp, и тогда будет им счастье.

> По поводу же операционной системы, которая написана на лиспе 1985го года выпуска

Что, ни разу Symbolics живьём не наблюдал? Зря, зря. Очень впечатляет.

Да, вот ещё: http://www.paulgraham.com/

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

> Операционная система на Лиспе образца 1985-го года по возможностям превосхидила большинство современных, ныне здравствующих.

А где про это почитать можно?

З.Ы. Я понимаю, что в данной теме сабж является офтопиком, но зачем нужно явовые программы самостоятельно транслировать в машинный код? Это же убивает основное преимущество явы --- переносимость?

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

> вообще-то с++ - стандартизованный язык и программа, написанная на с++ - работает на любой платформе, имеющей с++ компилятор, соответствующий этому стандарту :)

Ну вот программа на С++. Компилятор у меня на линухе есть, стандарту соответствует. А программа не работает :(

#include <windows.h>
class Application {
public:
Application() {
MessageBox(NULL,"Hello, world!","Application Message", MB_OK |
MB_ICONINFORMATION);
};
};

Application theApp;

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
return 0;
}

Я уж не говорю что её перекомпилировать приходится, в отличие от явы.

> лично я проблемы не вижу :) Кстати, можно ссылочку на сертификацию скажем ISO этого "промышленного стандарта"?

Я думаю, ISO быстро устанет если через них пропихивать каждый JSR :)

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

>The Symbolics Museum is designed for high-speed access. If you're using a slow connection, you probably won't be happy with the load times and general performance. We hope you'll come back and visit when you have access to a high-speed connection ;-)

В мою подлую душонку закралось чорное подозрение о причинах, по которым эта ось не получила широкого распространения.

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

По моему это и имелось в виду. (т.е. переносимый код, зависящий от непереносимых либ --- это не переносимый код)

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

>По моему это и имелось в виду. (т.е. переносимый код, зависящий от непереносимых либ --- это не переносимый код)

Да я понял.. ;-) Просто мысль сама по себе достаточно очевидна, и приведение кода, на мой взгляд, избыточно...

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

> Опаньки, а при чём тут win api? это ни разу не переносимый код.. ;-)))

это всего лишь контрпример :)

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

кстати, я не в курсе, есть ли под плюсы аналог свинга, в том плане что гуй будет на любой поддерживаемой платформе выглядеть 1-в-1 одинаково при одном и том же LnF? Про GTK, QT и тп я знаю, но как там борятся с расхождениями в системных виджетах, шрифтах и вызванными этим разъезжаниями?

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

Да ровно по той же, что и NeXT - дорогие по тем временам железки были.

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

В Java тоже можно абстракции высокого порядка сделать. Правда, при этом сразу начинает срабатывать 10 правило Гринспуна :)

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

> Ущербен тот язык, который не даёт возможности делать сложные вещи простыми. C++ позволяет создавать абстракции довольно высокого порядка, и в этом он превосходит Java, но отстаёт и от Python, и от Lisp, и даже от Tcl. Очень сильно отстаёт.

и

> Давайте сюда объективные преимущества C++ перед Common Lisp. Не надо петь про то, сколько софта на чём написано - это не серьёзный подход. Анализируем сами языки.

"C++ - это на самом деле не столько язык, сколько инструмент для создания ваших собственных языков. Его элегантность заключается отнюдь не в простоте (слова C++ и простота режут слух своим явным противонечием), а в его потенциальных возможностях. За каждой уродливой проблемой прячется какая-нибудь умная идиома, изящный языковой финт, благодаря которому проблема тает прямо на глазах. Проблема решается так же элегантно, как это слелал бы настоящий язык типа Smalltalk или Lisp, но при этом ваш процессор не дымится от напряжения, а на Уолл-Стрит не растут акции производителей чипов памяти. C++ - вообще не язык. Это мировоззрение или наркотик, меняющий способ мышления." Джефф Элджер

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

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

>Слова о дымящимся процессоре теперь можно по праву отнести и к Java.

Да ну на. :)

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

вот когда появится хотя бы один DE на лиспе сравнимый по скорости и фичастости с KDE тогда так и быть, признаем этот несомненно хороший и достойный язык годным для практики, а пока... =)

тоже и к жава относится. но на ней хотя бы тормозной лукингглас написан

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

>C++ - это на самом деле не столько язык, сколько инструмент для создания ваших собственных языков.

И какие такие в цпп есть средства для метопрограммирования? Сколько занимает интерпретатор prolog на цпп?

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

чудик, ты бы прогу на Qt привел =) и под маздай и под юникс и под макосикс работает. не берись участвовать в дискуссиях до которых ты не дорос.

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

Немедленно извинись перед kos, за то что ты вынес поспешное суждение, не вникая в смысл сообщения и не читая дальнейшее обсуждение, где всё было разобрано!

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