Как сделать исполняемый файл java

Добавил пользователь Алексей Ф.
Обновлено: 04.10.2024

Я запрограммировал программу Java в JCreator, все делается, но я хочу создать исполняемый файл из него, т. е. я не хочу, чтобы запустить программу путем загрузки Java-классов и составление выполнения, но вместо этого его как автономный исполняемый файл.

Какой самый быстрый способ сделать это?

Вы можете использовать утилиты jar в комплекте с SDK и создать исполняемый версии программы.

Это как это'ы сделали.

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

Сначала создать свою программу:

Очень простая, просто выводит окно с "Привет"и

Затем скомпилировать его:

Два файлы, созданные внутри группы «Старт" в папку Dummy.class и HelloWorldSwing.class.

Следующий шаг, создать файл jar. Каждый файл jar есть файл манифеста, в которой атрибуты, связанные с исполняемого файла.

Это содержимое моего файла манифеста.

Просто опишите то, что основным классом является ( с общественной статический метод main пустоту )

Как только манифест готов, исполняемый Джар вызывается.

Она имеет много вариантов, здесь я'м с -м -ф ( -C, чтобы создать банку-м, чтобы указать файл манифеста , -Ф = файл должен быть назван.. ) и папку я хочу банку.

Это создает .jar-файл в системе

Введите описание изображения здесь

Позднее вы можете просто дважды щелкните на этом файле и он будет работать, как ожидалось.

Введите описание изображения здесь

Для создания .файл Jar в JCreator вы просто должны использовать на "инструментов" меню, Создать баночку, но я'м не знаете, как манифест идет.

Здесь's в видео я'вэ нашел про: [создать jar файл в Jcreator][4].

Я думаю, вы можете продолжить с другой ссылки, размещенные в этой теме, Как только вы're с этой-то ".банку с" подход.

Вы также можете использовать у jnlp ( протокол запуска сети Java ) тоже.

Если вы используете Eclipse , вы можете попробовать ниже 7 шагов, чтобы получить .EXE-файл для Windows.

Шаг 1
Шаг 2
Шаг 3

Теперь у вас есть jar-файл. Использование Java -банку path/jarname.jar для выполнения.


Шаг 5
Шаг 6

Шаг 7: Дать .XML-файл, соответствующий имени и нажмите "Сохранить и". Интернет .XML-файл является стандартным, Дон't беспокоиться об этом. Ваш исполняемый файл будет создан!








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


Как проще всего на windows скомпилить простой .as файл?
Как проще всего на windows скомпилить простой .as файл?


Как включить txt файл в исполняемый файл?
Подскажите плиз как решить проблему, суть такова: в txt файле имеется таблица (разделитель - знак.

Как извлечь исполняемый файл из ресурсов?
В файле ресурсов resX есть исполняемый файл, как его извлечь??


Как удалить исполняемый файл (скрипт)
Всем привет! Не могу нигде найти как удалить исполняемый файл (скрипт) AutoIT. Подскажите.

на линуксе есть gcj компилятор который делает бинарник, на винде тоже что-то подобное было, но такое возможно только на тех ява программах где не используется технология Reflection

Вопрос: Я пишу приложение под Windows. Как обойтись без Windows на другом компе?
Ответ: Без геморроя - никак.

Skipy, Та мне нужно чтоб в 2 клика запускалась прога. И что что сила явы в виртуальной машине? Если мне не нравится разводить кучу файлов, а хочется собрать все до кучи? jar не предлагать, надо чтоб в 2 клика было(Пытаюсь перейти с С++ на яву, поэтому и такие вопросы)

Skipy, Та мне нужно чтоб в 2 клика запускалась прога. И что что сила явы в виртуальной машине? Если мне не нравится разводить кучу файлов, а хочется собрать все до кучи? jar не предлагать, надо чтоб в 2 клика было

А мне хочется виллу на Канарах и миллиард долларов.

Хотите в два клика - сделайте инсталлятор, который будет ставить программу с JRE и класть на декстоп ярлык на bat-файл, который будет запускать программу. В два клика будет запускаться.

Можно вообще обойтись без 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 выполняет ваш код вместе с кодом из библиотеки.

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

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

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


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

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

Типичные ошибки компиляции и запуска 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. Чтобы ошибка исчезла: предоставьте компилятору дополнительные права (запустите от имени администратора), либо сохраняйте в папку, на которую у текущего пользователя имеются права записи.

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

означает, что вы неправильно назвали класс в исходном коде программы. Имя класса должно совпадать с именем файла. В данном случае файл называется 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" не является внутренней или внешней командой, исполняемой программой или пакетным файлом

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

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

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


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

Читайте также: