Java — Как скомпилировать приложение из NetBeansIDE в .exe

Содержание

Компиляция исходного кода Java в нативный exe

Можно ли скомпилировать исходный код Java в родной EXE, как C ++?
Как и в C ++, все файлы заголовков включаются во время компиляции, все файлы библиотеки Java, которые требуются, должны быть присоединены к этому exe-файлу, и этот exe-файл должен быть не байт-кодом, а нативным exe-файлом и работать без jvm.

Так что все, что я хочу знать, это что-то вроде … если я могу заменить весь синтаксис C ++ на синтаксис Java и скомпилировать в исполняемый файл, такой как созданный компилятором C ++, который запускается напрямую.

Примечание: я не говорю о упаковщиках, которые упаковывают Java-классы в exe и в конечном итоге требуют jvm.

Решение

Единственный Java-компилятор с нативным кодом, о котором я знаю, это Компилятор GNU для Java тм Язык программирования .

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

Другие решения

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

Я старался Excelsior JET недавно, и это сработало очень хорошо для компиляции JAR в родные бинарные файлы Windows. JetpackII Утилита позволяет развернуть ваше приложение на целевом компьютере без необходимости установки Java. Это может быть немного сложно привыкнуть, но в целом блестящий выбор.

Как проводится компиляция в IntelliJ > Дата публикации: 2020-01-30

От автора: если бы не было таких мощных и качественных инструментов, как IntelliJ IDEA, компиляция занимала бы слишком много времени у разработчика — ведь это нужно собрать все файлы в единую программу, а после корректно запустить ее. К счастью, благодаря высокоразвитым IDE вся сложность заключается в настройке компилятора, а не каждого отдельного файла, поэтому в процессе работы с IntelliJ IDEA компиляция делается очень просто. Сегодня мы расскажем, как конфигурировать эту IDE для успешной сборки.

Знакомство с компилятором

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

До того, как появились компиляторы, все, с чем вы сталкиваетесь сегодня, делалось вручную. Но по мере развития продуктов данный софт стал необходим. Это программы, которые могут переводить код, написанный на высокоуровневом языке программирования, в низкоуровневый код, то есть в нули и единицы. Таким образом, процессор может понять то, что сказал человек.

Компиляторы бывают нескольких видов. Точно так же и процесс компиляции бывает разным. Все зависит от того, какой язык используется (компилируемый/интерпретируемый) и какое применяется программное обеспечение для взаимодействия. Кстати, раньше этот вид ПО называли «программирующими программами». Этимологическая логика здесь проста: это был инструмент, который заставлял компьютер выполнять код — то есть, программировал его.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Исполнительные файлы

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

Как правило, новички сразу ищут в IntelliJ IDEA возможность провести эту процедуру и превратить написанный ими код в .exe файл. Вынуждены вас огорчить, но это невозможно. Суть в том, что это противоречит самой концепции языка, не говоря уже о физической возможности. «Написано единожды — работает везде».

Тем не менее, неужели невозможно делать программы для Windows на языке Java? Конечно, можно, и готовые файлы будут иметь расширение .exe. Вот только дело тут не в компиляции. Программист должен сделать обертку для программы, чтобы она запустила Java Runtime Machine и Java-код вне глаз пользователя. И это действительно работающее решение.

Настройка проще, чем кажется

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

В диалоговом окне «Settings/Preferences» выберите Build, Execution, Deployment.

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

На странице «Исключения» укажите файлы и папки, которые не следует включать в компиляцию. Используйте «+» для добавления элементов в список.

Замечания:

На странице Java Compiler проверьте, является ли используемый компилятор тем, который вам нужен. При необходимости выберите другой компилятор.

На странице Annotation Processors настройте параметры обработки аннотаций.

Примените изменения и закройте диалог.

На этом заканчиваем рассказ о компиляции. Вам нужно запомнить два основных тезиса: компилятор IDEA нуждается в настройке, компиляции jar в exe не существует. Это совершенно другой, абсурдный процесс. И это не просто балластное знание. Оно убережет вас от скачивания утилит, которые обещают подобное чудо.

JavaScript. Быстрый старт

Изучите основы JavaScript на практическом примере по созданию веб-приложения

Разработка веб-приложения на PHP

Создайте веб-приложение на PHP на примере приема платежей на сайте

Создание, компиляция и выполнения Java программ

Ключевой момент: вы сохраняете исходный код Java программы в файл с расширением .java и компилируете его в файл с расширением .class. Файл .class выполняется виртуальной машиной Java.

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

Для создания и редактирования исходного кода Java вы можете использовать любой текстовый редактор или IDE. Этот раздел демонстрирует, как создавать, компилировать и запускать программы Java из командной строки. В разделе «Компиляция и запуск Java программ в NetBeans» показано, как это делать в IDE на примере NetBeans.

Можно вообще обойтись без IDE, а писать исходный код в любом текстовом редакторе (например, в Notepad), а компилировать в командной строке.

Внимание: файл с исходным кодом должен иметь расширение .java и иметь в точности такое же имя, как и имя публичного (public) класса. Например, файл с исходным кодом:

должен называться Welcome.java, поскольку имя public класса – Welcome.

Компилятор Java преобразовывает файл с исходным кодом Java в файл с байткодом Java. Следующая команда компилирует Welcome.java:

Если нет синтаксических ошибок, компилятор генерирует файл байкода с расширением .class. Следовательно, приведённая выше команда генерирует файл с названием Welcome.class.

Чтобы иметь возможность компилировать и запускать программы, вы должны установить JDK. Как это сделать описано в инструкциях:

Язык Java – это высокоуровневый язык программирования, но байткод Java – это низкоуровневый язык. Байткод похож на машинные инструкции, но нейтрален к архитектуре (не зависит от архитектуры) и может запускаться на любой платформе, которая имеет виртуальную машину Java – Java Virtual Machine (JVM). В отличие от физической машины, виртуальная машина – это программа, которая интерпретирует байткод Java. Это одно из главных преимуществ Java: байткод Java может работать на различных аппаратных платформах и операционных системах. Исходный код Java компилируется в байткод Java, а байткод Java интерпретируется виртуальной машиной Java. Ваш код Java может использовать код библиотеки Java. JVM выполняет ваш код вместе с кодом из библиотеки.

Цукерберг рекомендует:  Создаем игру «Поле чудес» на фреймворке LibGDX

Выполнить Java программу – это значит запустить байткод программы. Вы можете выполнить байткод на любой платформе с JVM, которая является интерпретатором. Она (виртуальная машина Java) переводит отдельные инструкции байткода в целевой машинный языковой код. Это делается последовательно – одна инструкция за раз, а не вся программ за один присест. Каждый шаг немедленно выполняется, сразу после перевода.

Следующая команда выполняет байткод для программы, которая приведена выше:

На скриншоте ниже показан процесс компиляции и запуска:

Внимание: не используйте расширение .class в команде, когда запускаете программу. Используйте ИмяКласса для запуска программы. Если вы в командной строке используете ИмяКласса.class, то система будет пытаться работать с файлом ИмяКласса.class.class.

Справка: когда выполняется Java программа, JVM начинает с загрузки байткода класса в память, используя программу под названием загрузчик классов (class loader). Если ваша программа использует другие классы, загрузчик классов динамически подгружает их перед тем, как они понадобятся. После загрузки класса, JVM использует программу под названием контролёр байткода (bytecode verifier) для проверки правильности байткода и проверки, что байткод не нарушает ограничений безопасности Java. Java обеспечивает строгую защиту, чтобы убедиться, что файлы классов Java не подделаны и не вредят вашему компьютеру.

Педагогическое примечание: ваш инструктор может требовать от вас использовать пакеты для организации программ. Например, все программы из этой части можно поместить в пакет chapter2. Подробности о пакетах и пространствах имён будут рассмотрены далее. Также посмотрите раздел «Почему NetBeans всегда использует package».

Типичные ошибки компиляции и запуска Java программ

Команда javac не найдена

Если при запуске javac, т.е. при попытке компиляции Java программы вы получаете ошибку:

Это означает, что JDK не установлен. Либо установлен, но не настроены переменные окружения. Способы исправления очевидны:

  • установить JDK
  • настроить переменные окружения

Если JDK установлен, то можно обойтись без добавления переменной окружения. Для этого используйте абсолютный путь до исполнимого файла javac:

Ошибка Class names are only accepted if annotation processing is explicitly requested

Если попытаться скомпилировать программу следующим образом:

то возникнет ошибка:

Причина ошибки в том – что вы забыли указать расширение файла .java.

Ошибка записи (error while writing)

Компиляция заканчивается ошибкой:

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

Ошибка «class is public, should be declared in a file named»

который заканчивается примерной такой ошибкой

означает, что вы неправильно назвали класс в исходном коде программы. Имя класса должно совпадать с именем файла. В данном случае файл называется Welcome.java, а класс внутри программы назван Welcomee

Error: Could not find or load main class

Если попытаться запустить программу следующим образом:

то возникнет ошибка

Причина её в том, что не нужно было добавлять к названию файла расширение .class. Виртуальная машина автоматически добавляет расширение и в приведённом примере она ищет файл Welcome.class.class

Ошибка Error: Could not find or load main class при запуске Java программы по абсолютному пути

Эта ошибка возможно при запуске Java программы по абсолютному пути:

Ошибка возникает как в Windows, так и в Linux:

Если в терминале вы находитесь в той же директории, что и файл, который вы запускаете, то не нужно указывать абсолютный путь. Например, нужно запускать так:

Если же вы находитесь в другой директории, то нужно использовать опцию -cp, после которой указать путь до каталога, где размещена запускаемая программа. А далее указать запускаемый файл без расширения .class:

Как видно из скриншота, командная строка находится в папке C:\WINDOWS\system32. Файл, который нам нужно запустить, находится в папке C:\ (корень диска). Мы указываем после ключа -cp папку C:\, а затем пишем имя файла программы без расширения – Welcome.

Аналогично нужно поступать в Linux. Пример команды:

Ошибка Main method not found in class

Если при запуске вы столкнулись с ошибкой:

Это означает, что вы не указали метод main, либо написали слово неправильно (например, Main вместо main).

Особенности компиляции и запуска Java программ в Windows

Команда «javac» не является внутренней или внешней командой, исполняемой программой или пакетным файлом

Эта ошибка рассмотрена чуть выше. Для установки и настройки переменных окружения в Windows обратитесь к инструкции «Установка Java (JDK) в Windows».

Проблема с кодировкой в Java программах в командной строке Windows

Если вы написали программу, которая выводит кириллицу в консоль:

А в качестве результата получили крякозяблы:

Значит кодировка, в которой выводит строки ваша программа, отличается от кодировки командной строки Windows.

Имеется несколько способов исправить эту проблему. Кстати, если для запуска консольных программ Java вы используете NetBeans, то он выводит строки в правильной кодировке. В Linux эта проблема также отсутствует. Если вам нужно поменять кодировку на время, то вы можете выполнить следующие команды:

Для того, чтобы смена кодировки командной строки Windows не сбрасывалась после закрытия и открытия командной строки, можно внести изменения в реестр Windows. Для этого нажмите Win+x, выберите «Выполнить», в открывшееся окно введите regedit. В открывшейся программе (редактор реестра Windows) перейдите к [HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun] и измените (или добавьте) значение на @chcp 65001>nul

Как скомпилировать и запустить программу на Java?

Перед теми кто начинает программировать на Java, сразу возникают два вопроса: как скомпилировать, и как запустить программу на Java?

В одной из предыдущих статей я уже рассказывал как начать писать программы на Java, но тогда, чтобы как можно быстрее показать Вам как просто можно начать писать на Java я использовал среду разработки NetBeans, но сейчас я хочу рассказать Вам как скомпилировать и запустить java-файл используя лишь инструменты стандартной поставки JDK.

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

В комплект средств разработки JDK входят две базовые программы, которые понадобятся нам, для того, чтобы скомпилировать — javac.exe и запустить — java.exe программу на Java. Эти консольные программы находятся в папке bin JDK. У меня этот путь следующий:

C:\Java\jdk1.8.0_91\bin\java.exe — java интерпритатор
C:\Java\jdk1.8.0_91\bin\javac.exe — java компилятор

Чтобы у Вас была возможность скомпилировать и запустить Java программу эти консольные программы должны быть доступны в переменной среды PATH вашего ПК. Как добавить свой путь в эту переменную Вы можете найти в Интернете.

Итак, представим, что JDK мы установили, нужные пути прописали, теперь давайте создадим файл Java программы, который будет выводить некоторую надпись в консоль. Код класса должен лежать в файле HelloWorld.java в кодировке UTF-8.

class HelloWorld
<
public static void main(String[] args)
<
System.out.println(«Hello, Myrusakov.RU»);
>
>

Компилируем файл так:

C:/> javac HelloWorld.java

Если ошибок нет, то на выходе Вы получите файл HelloWorld.class в той же папке. Запустить этот файл можно командой:

Цукерберг рекомендует:  Введение в API ориентации экрана

C:/> java HelloWorld

Во втором случае расширение класса указывать не нужно.

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

Таким образом мы написали программу на Java, скомпилировали ее и запустили. Конечно с помощью интегрированной среды разработки это можно было бы сделать куда быстрее и без лишних слов, как говориться, но знание базового процесса создания программ на Java, конечно необходимо. А для тех, кто хочет насколько это возможно быстро освоить Java у меня есть специальный видеокурс «Программирование на Java с Нуля до Гуру».

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Вопрос по executable, netbeans6.8, java &#8211 создание исполняемого файла из проекта Java с использованием NetBeans [дубликат]

    На этот вопрос уже есть ответ здесь:

    Я создал проект Java в NetBeans. Теперь я хочу сделать из него исполняемый файл, который можно запускать (запускать) на других компьютерах, на которых установлены JDK или JRE, но нету меня есть NetBeans или любая другая Java IDE. Как я могу сделать это, используя NetBeans .

    Вы должны построить свой проект. Просто нажмите на молоток на панели инструментов. После этого в вашем проекте должна быть папка с именем «расстояние».

    В нем есть файл * .jar, который вы можете развернуть любому, у кого установлена Java.

    Вы хотите скомпилировать его в JAR? Netbeans делает это автоматически, просто clean and build (забей символ) и посмотри в dist подкаталог вашего проекта. Там будет баночка с lib папка, содержащая необходимые библиотеки. Этих JAR + lib достаточно для запуска приложения.

    Мабы, ты снял галочку с опции:

    Project Properties -> Build -> Packaging -> Build JAR after compiling

    (но это включено по умолчанию)

    спользованием $ java -jar myJar.jar. Так что вам нужно изменить файл манифеста внутри фляги. Во-вторых, если вы хотите выполнить двойной щелчок мышью, то для Linux создайте .sh, а для windows — файл .bat, содержащий указанный выше $ java -jar.

    Для этого требуется установка JVM на любой машине, которую вы хотите запустить.

    MnogoBlog

    как создать сайт на wordpress, настроить и оптимизировать wordpress

    Создаем exe файл на Java для Windows

    Здравствуйте, сегодня попробуем написать простую программу на языке программирования Java, сохраним её в формате “exe”, после чего наша программа будет запускаться на любом компьютере с ОС Windows.

    Скачать исходники для статьи можно ниже
    В компании ISsoft есть несколько вакансий qa engineer — заглядывайте на сайт! . Зеркало леон работающее сегодня: Зеркало leonbets актуальное на сегодня.

    Создадим простенькую программку в формате EXE, которая попросит нас ввести для неё два числа и выведит для нас результат в виде этих же чисел, но только увеличенных на 1.

    Скачать готовую программу можно по следующей ссылке – “yadi.sk/d/Kf5A7CQYrQTfE”

    Приступим к созданию данной программы:

    1. Устанавливаем бесплатную программу Eclipse

    Официальный сайт “eclipse.org/downloads/”

    Скачиваем “Eclipse IDE for Java EE Developers”:

    Здесь есть Eclipse как для 32 разрядной операционной системы, так и для 64 разрядной системы.

    Как узнать какая у вас система?
    Наведите правой клавишей мыши на ярлык “Мой компьютер”, выберите пункт “Свойства”:

    Скачается zip-архив, если вы попробуете распаковать его встроенным в windows архиватором, то здесь могут возникнуть проблемы – процесс может затянуться на длительное время или вовсе с ошибкой. Лучше всего это сделать с помощью программ WinRAR или 7-zip.

    2. Далее устанавливаем Комплект Разработчика Приложений на языке Java – Java Software Development Kit (Java SDK или JDK).

    Скачать его (JDK) можно с официального сайта – “oracle.com/technetwork/java/javase/downloads/index.html”

    Здесь вам также предложат скачать JDK для различных операционных систем, замечу, что 32 разрядной для windows – вы не найдете, JDK для Windows x32 – можно скачать здесь – Скачать JDK для windows x32 и как его установить

    После установки JDK стоит проверить его работу – для этого – откройте командную строку снова (Пуск > Выполнить. В текстовом поле наберите «cmd» и нажмите «Enter».). Наберите команду «javac» (без кавычек, конечно).

    Если у вас выводится сообщение как на скриншоте выше, то все нормально.

    Если нет и показывается следующее сообщение:

    3. Скачайте бесплатную программу launch4j.
    Она предназначена для компиляции всех ваших java файлов в один исполняемый “exe” файл.
    Вы можете скачать launch4j с сайта “sourceforge.net/projects/launch4j/files/launch4j-3/3.1.0-beta1/”
    или по следующей ссылке:
    “https://mnogoblog.ru/wp-content/uploads/2020/04/launch4j-3.8-win32.zip”

    4. Теперь осталось написать простенькую программу на языке программирования JAVA в программе Eclipse.

    Для изучения языка программирования Java есть хороший youtube канал – ZhirniToni – “youtube.com/user/ZhirniToni” и в нем есть плейлист “Java для Чайников”, так вот на основе уроков 7, 8 и 14:

    Урок 7: “youtu.be/lBE20G5l0YU”
    Урок 8: “youtu.be/L-Ivs-ZfbT8”
    Урок 14: “youtu.be/XUJsJ_loOkE”

    Конечно же, лучше посмотреть все обучающие видео хотя бы с 1 по 14 урок, чтобы лучше разбираться в коде программы.

    Благодаря урокам 7 и 8 у меня в программе Eclipse получилось 2 файла: main.java и reader.java.

    Код файла main.java:

    Код файла reader.java:

    После того как вы напишите программу на Eclips сохранить её аналогично уроку 14, только тип файла нужно выбрать “Runnable JAR file”, а именно, вот так:

    – кликаем мышкой на проект, который хотим сохранить:

    – далее щелкните правой кнопкой мыши по вашему проекту и нажмите “Export” (Экспорт).

    – откройте папку “Java” и дважды нажмите опцию “Runnable JAR file” (исполняемый архив JAR).

    – Первое, что вы должны сделать, это выбрать главный класс (класс с основным методом) из выпадающего меню под “Launch configuration” (конфигурации запуска).
    Во-вторых, выберите “Export destination” (Место экспорта) с помощью кнопки “Browse…” (Обзор) или вручную, вводя месторасположение.
    И в-третьих, обеспечьте выбор переключателя “Extract required libraries into generated JAR”(Извлечь необходимые библиотеки в созданные JAR) “.
    И, наконец, нажмите кнопку “Finish” (Готово).

    Выкладываю вам JAR файл, который у меня получился – скачать JAR файл можно по следующей ссылке – “yadi.sk/d/o0Q8iWE7rQTZp”

    5. А далее сохраним нашу программу на JAVA с помощью программы launch4j в exe файл.

    В первом текстовом поле введите или выберите с помощью просмотра место, где исполняемый файл хотите сохранить. Убедитесь, что имя файла имеет “.exe” в конце названия!

    Во втором текстовом поле введите или выберите с помощью просмотра файл .jar, ранее экспортированного из Eclipse.

    В четвертом текстовом поле с надписью “Icon:” можно выбрать иконку для программы, однако, это не является обязательным, и если его оставить пустым, ваша ОС вернется к своему значку по умолчанию исполняемого файла.

    На вкладке “JRE” в верхнем меню выберите “Min JRE version” и введите “1.4.0”. Это гарантирует, что пользователи имеют нужную версию Java для использования вашей программы. Вы можете изменить это, но 1.4.0 является безопасной версией.

    Нажмите кнопку передач под названием “Build wrapper” в верхней части экрана.

    Цукерберг рекомендует:  Web - Помогите (веб дизайн)

    Программа вместе с exe файлом создаст и файл .xml, дайте ему соответствующее имя и нажмите “Save”. Файл .xml является стандартным, не волнуйтесь об этом. Сразу после создания .xml файла будет создан exe файл.

    Как скомпилировать Java в нативный бинарник? (.exe например)

    Любой Java программист когда — либо думал об этом.

    Мне известно несколько способов.

    Во первых есть проприетарные утилиты для таких преобразований.

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

    А еще есть oss.readytalk.com/avian/, сейчас читал на хабре статью, о том, как без помощи магии и бубна, этой прогой, можно собрать бинарник, который будет работать на компе не имеющем jre, под любой ОС.

    При этом файл будет небольшого размера (порядка нескольких мегабайт).

    Осторожно, очень много букаф!

    Возможно вас заинтересует:

    Добавить комментарий Отменить ответ

    Для отправки комментария вам необходимо авторизоваться.

    Compiling a java program into an executable [duplicate]

    I’ve just made a simple program with Eclipse and I want to compile it into an executable, but simply can’t seem to find out how to do it.

    7 Answers 7

    You can convert .jar file to .exe on these ways:

    (source: viralpatel.net)

    1- JSmooth .exe wrapper:
    JSmooth is a Java Executable Wrapper. It creates native Windows launchers (standard .exe) for your java applications. It makes java deployment much smoother and user-friendly, as it is able to find any installed Java VM by itself. When no VM is available, the wrapper can automatically download and install a suitable JVM, or simply display a message or redirect the user to a web site.

    JSmooth provides a variety of wrappers for your java application, each of them having their own behaviour: Choose your flavour!

    2- JarToExe 1.8
    Jar2Exe is a tool to convert jar files into exe files. Following are the main features as describe in their website:

    • Can generate “Console”, “Windows GUI”, “Windows Service” three types of exe files.
    • Generated exe files can add program icons and version information.
    • Generated exe files can encrypt and protect java programs, no temporary files will be generated when program runs.
    • Generated exe files provide system tray icon support.
    • Generated exe files provide record system event log support.
    • Generated windows service exe files are able to install/uninstall itself, and support service pause/continue.
    • New release of x64 version, can create 64 bits executives. (May 18, 2008)
    • Both wizard mode and command line mode supported. (May 18, 2008)

    3- Executor
    Package your Java application as a jar, and Executor will turn the jar into a Windows exe file, indistinguishable from a native application. Simply double-clicking the exe file will invoke the Java Runtime Environment and launch your application.

    Декомпиляция Java приложений

    Декомпиляция — процесс воссоздания исходного кода декомпилятором

    Недавно я задался вопросом: Какой декомпилятор лучше?
    Начал мучить Google, экспериментировать. В итоге нашел отличное решение. Как декомпильнуть любую программу и получить рабочие «исходники»? Об этом в сабже.

    Краткий обзор популярных декомпиляторов

    Mocha

    Mocha (автор — Hanpeter van Vliet)— это, вероятно, один из первых выпущенных декомпиляторов Java. Предоставляет консольный пользовательский интерфейс. Его релиз состоялся в 1996-ом году, ещё до того, как появился Java Development Kit версии 1.1

    JAva Decompiler

    JAva Decompiler, JAD (автор — Pavel Kouznetsov) — по всей видимости, самый
    популярный декомпилятор Java. Как и Mocha, этот декомпилятор предоставляет консольный интерфейс, давно не обновляется и не поддерживается, но большое число графических инструментов для работы с ним, в том числе плагин JadClipse для среды разработки Eclipse, делают его и по сей день используемым в качестве подручного средства для декомпиляции небольших классов.
    Помимо декомпиляции, JAva Decompiler обладает возможностью дизассемблирования .class-файлов.

    DJ Java Decompiler

    DJ Java Decompiler (автор — Atanas Neshkov) — долгое время вопреки названию являлся лишь графической оболочкой для предыдущего декомпилятора, позволявшей легко и удобно выбрать аргументы командной строки для вызова JAD. В текущей версии добавлена поддержка аннотаций, но декомпилятор стал условно-бесплатным (необходима покупка после 10 пробных использований).

    JD-Core

    JD-Core (автор — Emmanuel Dupuy) — очень мощная и функциональная библиотека для декомпиляции и анализа байткода Java, разработанная в рамках «Java Decompiler project».
    Имеет следующие особенности:

    • Полностью написана на языке C++, что делает декомпиляцию необычайно быстрой
    • Не требует для работы Java Runtime Environment и поэтому не требует специальной установки
    • Корректно декомпилирует .class-файлы, сгенерированные большинством компиляторов

    Пожалуй, к недостаткам JD-Core можно отнести лишь то, что она распространяется как
    часть самостоятельного графического приложения JD-GUI, также разработанного на C++ и прилинкованного к ней статически, или плагина JD-Eclipse для среды разработки Eclipse, что делает практически невозможным её использование в стороннем некоммерческом проекте, особенно разработанном на языке Java. Использование библиотеки в коммерческих программных продуктах запрещено автором.

    Fernflower

    Fernflower — один из лучших декомпиляторов языка программирования Java на сегодняшний день.
    Обладает следующими возможностями:
    1. Поддерживает разнообразные языковые конструкции:

    • Параметрические типы
    • Аннотации
    • Перечислимые типы
    • Утверждения

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

    Мой выбор

    1. JD-GUI — для просмотра, не более
    2. Fernflower — полное восстановление

    Остановлюсь на втором. Вообще, автор данного декомпилятора вроде как не выкладывал оффлайн версию в общий доступ(или я упустил этот факт читая его блог), до последнего времени была только онлайн. Но для меня было приятным удивлением найти ее на одном форуме!

    Fernflower будет развиваться в сторону деобфускатора

    Специальных функций деобфускации Fernflower сейчас не содержит, они будут подключаться в дальнейшем отдельными модулями

    Не хватает еще модуля переименования

    ProGuardDeobfuscator — небольшая модификация программы ProGuard, превращающая ее в квази-деобфускатор. В процессе обработки короткие обфусцированные имена пакетов, классов, полей и методов заменяются на более осмысленные и уникальные в пределах Jar файла.

    Скачать исходники и сам деобфускатор: projectd8.org/Programs/Java/PGD

    Инструменты все есть, но лично я, для облегчения воссоздания сорцов использую так же любимую Netbeans IDE — очень сильно помогает своими подсказками, особенно когда классов много.
    Спасибо за внимание!

    Ссылки

    UPD:
    Извиняюсь, в offline версии Fernflower присутствует модуль переименований и уйма других штук — Readme

    Компиляция java-программы в исполняемый файл

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

    Вы можете конвертировать .jar файл в .exe следующими способами:

    (источник: viralpatel.net)

    1- Оболочка JSmooth.exe:
    JSmooth — это исполняемая оболочка Java. Он создает собственные средства запуска Windows (стандартные .exe) для ваших Java-приложений. Это делает развертывание Java намного более плавным и удобным для пользователя, поскольку оно способно найти любую установленную Java VM самостоятельно. Когда виртуальная машина недоступна, оболочка может автоматически загрузить и установить подходящую JVM, или просто отобразить сообщение или перенаправить пользователя на веб-сайт.

    JSmooth предоставляет различные обертки для вашего java-приложения, каждое из которых имеет свое поведение: выберите свой вкус!

    2- JarToExe 1.8
    Jar2Exe — это инструмент для преобразования jar файлов в exe файлы. Ниже приведены основные функции, описанные на их веб-сайте:

    • Может генерировать «Консоль», «Windows GUI», «Служба Windows» трех типов исполняемых файлов.
    • Сгенерированные исполняемые файлы могут добавлять значки программ и информацию о версии.
    • Сгенерированные exe файлы могут шифровать и защищать Java-программы, временные файлы не будут создаваться при запуске программы.
    • Сгенерированные exe файлы обеспечивают поддержку значков в системном трее.
    • Сгенерированные exe файлы обеспечивают поддержку журнала системных событий.
    • Сгенерированные exe файлы службы Windows могут устанавливать/удалять самостоятельно, а служба поддержки приостанавливает/продолжает.
    • Новый выпуск версии x64, может создавать 64-разрядных руководителей. (18 мая 2008 г.)
    • Поддерживаются как режим мастера, так и режим командной строки. (18 мая 2008 г.)

    3- Исполнитель
    Упакуйте свое Java-приложение как jar, и Executor превратит jar в exe файл Windows, неотличимый от нативного приложения. Двойной щелчок по exe файлу вызовет среду выполнения Java и запустит ваше приложение.

    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих