как запустить java приложение на linux

Запуск Java классов и JAR-ов не по учебнику

Меня давно занимала мысль как в Linux-е запускать программы на Java без вспомогательных Bash скриптов. Я не видел приемлемого решения, если не считать способ «bash script payload», когда в конец скрипта помещается бинарный файл.

Но на прошлой неделе случайно наткнулся на модуль ядра binfmt_misc, с помощью которого можно перехватить исполнение файла по его magic number. Для этого через update-binfmts добавляется собственный обработчик для получения имени исполняемого файла и аргументов пользователя.

Первое открытие

Как оказалось в моей Ubuntu 16.04 уже зарегистрирован обработчик для JAR файлов:

Отдав команду chmod +x foo.bar я радостно потирал руки, но реальность оказалось сурова — запуск ./foo.jar выдал следующее:

Погуглив, я нашел обросший мхом баг bugs.java.com/bugdatabase/view_bug.do?bug_id=6401361 Как оказывается сборка через Maven не добавляет «0xcafe» в начало JAR файла. Не менее безответственно ведет себя и плагин maven-assembly-plugin. Что не нравится /usr/bin/jexec, зарегистрированному обработчику по умолчанию.

Погуглив еще, я нашел решение проблемы через установку пакета jarwrapper. После установки добавляется новый обработчик /usr/bin/jarwrapper и страховка /usr/bin/jardetector (проверяет по META-INF что это действительно JAR). Но изучив код обработчика мне не понравилась куча лишней работы, которую делает скрипт запуская множество вспомогательных программ.

Поэтому решением стал собственный обработчик:

Дальше открываем файл sudo gedit /var/lib/binfmts/jar и регистрируем обработчик заменив строчку с /usr/bin/jexec на /usr/bin/jarinvoke. На самом деле это плохое решение и лучше создать собственную группу (об этом ниже), но для первичного понимания сойдет.

Для вступления изменений в силу может потребоваться выполнить:

После чего можете запускать JAR файлы как любые другие исполняемые файлы.

Исполняемые классы

Теперь можно идти дальше и сделать из Java классов исполняемые файлы, где jarwrapper не сможет помочь. Обработчик будет работать только для классов с пакетом по умолчанию (т.е. классы с отсутствующим package заголовком). Может можно сделать и лучше, но мне хватило такой функциональности для «скриптования» на Java:

После чего регистрируем собственный обработчик (этим же способом можно создать новый обработчик для JAR-ов не редактируя /usr/bin/jexec):

Можно пойти и дальше, сделав более сложный обработчик, который по импорту классов будет определять какие библиотеки добавить в CLASSPATH из

/.m2, но это отдельная история. Сейчас интересен взгляд со стороны, замечания, дополнения, если таковые есть. После чего думаю оформить это в deb пакет и выложить всё на гитхабе.

Источник

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

JAR (Java ARchive) – это независимый от платформы формат файла, используемый для объединения многих файлов классов Java и связанных с ними метаданных и ресурсов, таких как текст, изображения и т. д., в один файл для распространения.

Он позволяет Java-средам эффективно разворачивать целое приложение в одном архиве и предоставляет множество преимуществ, таких как безопасность, его элементы могут быть сжаты, сокращено время загрузки, позволяетcz уплотнение пакетов и управление версиями, поддерживает переносимость.

Он также поддерживает упаковку для расширений.

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

Как создать JAR-файл в Linux

1. Сначала начните с написания простого Java-класса с основным методом для приложения TecmintApp для демонстрационных целей.

Скопируйте и вставьте следующий код в файл TecmintApp.java.

Сохраните файл и закройте.

2. Затем нам нужно скомпилировать и упаковать класс в JAR-файл, используя утилиты javac и jar, как показано ниже:

3. Создана Ounce tecmint app.jar, теперь вы можете выполнить файл с помощью команды java, как показано ниже:

Из вывода приведенной выше команды видно, что мы столкнулись с ошибкой. JVM (Java Virtual Machine) не смог найти наш основной атрибут, поэтому он не смог найти основной класс, содержащий основной метод (public static void main (String [] args)).

Файл JAR должен иметь манифест, содержащий строку в форме Main-Class: classname, которая определяет класс с основным методом, который служит отправной точкой нашего приложения.

4. Чтобы исправить вышеуказанную ошибку, нам нужно будет обновить JAR-файл, чтобы включить атрибут манифеста вместе с нашим кодом.

Давайте создадим файл MANIFEST.MF.

Скопируйте и вставьте следующую строку в файл MANIFEST.MF.

Сохраните файл и добавьте файл MANIFEST.MF в наш tecmintapp.jar, используя следующую команду:

5. Наконец, когда мы снова выполним файл JAR, он должен предоставить нам ожидаемый результат, как показано на выводе:

Для получения дополнительной информации см. Man-страницы java, javac и jar.

Источник

Есть ли способ выполнить файл с Java в Bash Terminal? как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Я пытаюсь выполнить файл Minecraft.jar.

. Синтаксис может быть использован только для запуска (от «источников») сценариев оболочки.

Если у вас не установлена ​​Java, вы можете это исправить, установив default-jre пакет ¹. Вы можете увидеть, если у вас уже установлена ​​Java, запустив в терминале:

Linux вполне способен запускать чужой двоичный файл, такой как файл JAR. Так работает Wine, например. Чтобы запустить JAR-файлы как исполняемые, выполните в консоли следующее

Перейдите в файл JAR и измените его на исполняемый (вы также можете сделать это через свойства файла в Nautilus)

Запустите ваш JAR-файл так же, как если бы это был любой другой двоичный исполняемый файл или скрипт оболочки

Если это исполняемый файл jar, то

Не все jar-архивы содержат исполняемый класс, объявленный для запуска в файле манифеста, но если он есть, это будет работать.

Скомпилированный двоичный xybin просто запускается с его именем, если он находится в пути:

или с его абсолютным путем:

или с его относительным путем:

или, если вы оказались в каталоге файла, с этим относительным путем:

Если вы не хотите запускать новый bash, вы можете использовать исходный код и использовать его для определения функций, псевдонимов и настроек переменных.

Источник

Как запустить Java из командной строки в Linux

Главное меню » Программирование » Java » Как запустить Java из командной строки в Linux

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

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

Как запустить Java из командной строки

Чтобы запустить java-программу в Linux, нам нужно проверить, доступен ли Java Development Kit (JDK) в системе и его версию.

Чтобы подтвердить это, введите следующую команду:

( Инструмент командной строки Javac используется для компиляции программ Java)

Инструмент командной строки Javac недоступен в моей системе. У нас есть несколько команд для его загрузки, как указано на изображении выше.

Давайте воспользуемся командой default-jdk, чтобы получить это:

Предположим, я создал файл с именем « testing.java » и написал в нем простую программу:

(Имейте в виду, что имя вашего класса должно совпадать с именем файла)

Скомпилируйте файл testing.java на терминале с помощью команды javac :

Теперь запустите программу Java, вызвав ее имя класса в терминале:

Заключение

Java – это язык высокого уровня современной эпохи, поддерживаемый Java Development Kit (JDK). JDK – это пакет, который помогает запускать java и используется для разработки пакетов программного обеспечения.

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

Как запустить jar в Linux

Как запустить jar Linux

Как я уже сказал, для запуска jar-файлов нам необходимо, чтобы на компьютере была установлена Java-машина. Если вы не собираетесь ничего разрабатывать, вам будет достаточно Java Runtime Environment или JRE. Что касается версии, то, обычно, большинство программ работают с 7 или 8 версией. Если нужна только восьмая, то разработчики прямо об этом сообщают. Посмотреть версию Java и заодно убедиться, что она установлена в вашей системе, можно с помощью команды:

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

У меня установлена восьмая версия, с пакетом обновлений 171. Если вы получаете ошибку, что команда не найдена, то это значит, что вам нужно установить java. В Ubuntu OpenJDK JRE можно установить командой:

sudo apt install openjdk-8-jre

Если вы хотите скомпилировать пример из этой статьи, то вам понадобиться не JRE, а JDK, её можно установить командой:

sudo apt install openjdk-8-jdk-headless

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Чтобы узнать, как установить Java в других дистрибутивах, смотрите статью по ссылке выше. Когда Java будет установлена, вы можете очень просто запустить любой jar-файл в Linux, передав путь к нему в качестве параметра Java-машине. Давайте для примера создадим небольшое приложение:

public class Main <
public static void main(String[] args) <
System.out.println(» Losst test app! «);
>
>

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Затем скомпилируем наше приложение в jar-файл:

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Если мы дадим программе право на выполнение:

И попытаемся её запустить, то получим ошибку:

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Чтобы её исправить, нам понадобиться пакет jarwrapper:

sudo apt install jarwrapper

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Теперь можно запускать java в Linux по щелчку мыши или просто командой.

как запустить java приложение на linux. Смотреть фото как запустить java приложение на linux. Смотреть картинку как запустить java приложение на linux. Картинка про как запустить java приложение на linux. Фото как запустить java приложение на linux

Выводы

В этой небольшой статье мы рассмотрели, как запустить jar Linux с помощью java-машины, а также как упростить команду запуска. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *