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

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

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

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

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

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

update-binfmts --display . jar (enabled): package = openjdk-8 type = magic offset = 0 magic = PK\x03\x04 mask = interpreter = /usr/bin/jexec detector = 

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

invalid file (bad magic number): Exec format error 

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

Читайте также:  Простой пример использования GET

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

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

#!/bin/sh #/usr/bin/jarinvoke JAR=$1 shift exec java -jar $JAR $@ 

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

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

sudo update-binfmts --disable jar && sudo update-binfmts --enable jar 

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

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

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

#!/bin/sh # /usr/bin/clsinvoke CLASS_FILE=$1 shift ABSOLUTE_PATH=`readlink -f $CLASS_FILE` CLASS=`basename $ABSOLUTE_PATH` CLASS=$ CLASSPATH=`dirname $ABSOLUTE_PATH` exec java -cp $CLASSPATH $CLASS $@ 

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

sudo update-binfmts --package clsinvoke --install clsinvoke /usr/bin/clsinvoke --magic '\xca\xfe\xba\xbe' 
javac HellWorld.java chmod +x HelloWorld.class ./HelloWorld.class Hello, World 

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

Источник

🐧 Как запустить JAR-файл на Linux

JAR- это файлы, которые были спрограмированны и скомпилированы с использованием языка программирования Java.

Для того чтобы запустить эти файлы в системе Linux, необходимо сначала установить программное обеспечение Java Runtime Environment (JRE).

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

Обычно пакет JRE не установлен в большинстве дистрибутивов Linux по умолчанию, поэтому мы должны сначала установить Java, а затем открыть файл(ы) JAR.

В этом руководстве мы покажем вам, как установить Java Runtime Environment на все основные дистрибутивы Linux.

Это позволит вам открывать JAR-файлы независимо от того, какой дистрибутив Linux вы используете.

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

Как установить JRE на все основные дистрибутивы Linux

Первое, что нам нужно сделать, это установить Java Runtime Environment, чтобы мы могли открывать файлы JAR.

Вы можете использовать соответствующую команду ниже, чтобы установить Java JRE с помощью менеджера пакетов вашей системы.

Чтобы установить Java JRE на Ubuntu, Debian, Linux Mint, MX Linux и Kali Linux:

$ sudo apt update $ sudo apt install default-jre

Чтобы установить Java JRE на Fedora, CentOS, Alma Linux, RockyLinux и Red Hat:

$ sudo dnf install java-latest-openjdk

Чтобы установить Java JRE на Arch Linux и Manjaro:

Запуск JAR-файла из командной строки

Запуск JAR-файла из командной строки очень прост.

Мы можем использовать следующий синтаксис:

Если JAR-файл имеет компонент GUI, он будет запущен на вашем экране.

В противном случае текст будет выведен на терминал.

Заключение

В этом руководстве мы рассмотрели, как запустить JAR-файл в системе Linux.

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

После установки программы JRE мы можем запускать JAR-файлы как из командной строки, так и из графического интерфейса.

Источник

Как запустить Java из командной строки в Linux 1 мин для чтения

Favorite

Добавить в избранное

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

Чему должны научиться Java-разработчики в 2021 году

J ava — популярная в мире платформа для разработки программного обеспечения, которую разрабатывает Джеймс Гослинг. Он разработан для поддержки нескольких платформ, таких как Linux, macOS и Windows. Мобильные и настольные приложения также могут быть разработаны с использованием языка Java.

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

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

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

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

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

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

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

$ sudo apt install default-jdk

Чтобы проверить установку javac , введите:

Теперь напишите программу на Java в текстовом файле и сохраните ее с расширением .java .

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

testing.java class testing < public static void main(String args[]) < System. out. println("Привет! Добро пожаловать в блог AndreyEx"); >>

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

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

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

Заключение

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

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

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

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

Источник

Установка Java в Ubuntu и Linux Mint

Установка Java в Ubuntu и Linux Mint

Java — это язык программирования, разработанный компанией Sun Microsystems, которую потом купила компания Oracle.

Программы, написанные на Java обычно работают в различных операционных системах, то есть являются кроссплатформенными. Для запуска таких программ необходимо наличие в системе Виртуальной машины Java (Java Virtual Machine — JVM), то есть, проще говоря, наличие некоторых дополнительных компонентов, которые обеспечивают возможность запуска Java-программ в системе.

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

Какие версии Java бывают и чем отличаются

Существует несколько реализаций Java для Linux. Самыми популярными являются OpenJDK и Oracle Java. В Linux обычно пользователь устанавливает одну из этих реализаций.

  • Oracle Java — реализация Java для Linux от компании Oracle. В ней содержатся некоторые закрытые (проприетарные) компоненты и компоненты, которые защищены патентами.
  • OpenJDK — реализация Java для Linux с открытым исходным кодом.

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

В Linux пакеты с Java представлены в двух редакциях:

  • JRE — Java Runtime Environment — компоненты, предназначенные для запуска Java-программ в Linux.
  • JDK — Java Development Kit — компоненты, предназначенные для запуска, компиляции и разработки Java-программ.

Какую версию устанавливать

Рядовому пользователю, которому нужно просто запускать Java-программы, обычно достаточно установить «OpenJDK JRE».

Если потребуется компиляция Java-программ, то нужно будет установить «OpenJDK JDK».

Рассмотрим, как установить Java в Ubuntu Linux. Абсолютно аналогично выполняется установка в Linux Mint и других дистрибутивах, основанных на Ubuntu.

— Я ничего не понял. Что мне устанавливать?
— Если вам нужно просто запускать Java-программы в Ubuntu (Linux Mint), то устанавливайте OpenJDK JRE.

Проверка версии Java

Чтобы проверить, установлена ли у вас уже в системе какая-либо версия Java, выполните в терминале команду:

Узнать версию Java в Linux

Если Java установлена, то вы получите информацию о том, какие компоненты Java установлены в системе.

Установка OpenJDK

Установка OpenJDK JRE

Для установки OpenJDK JRE в Ubuntu Linux достаточно установить пакет default-jre. Для установки выполните в терминале команду:

sudo apt install default-jre

Установка OpenJDK JDK

Если вы хотите установить OpenJDK JDK, то нужно установить пакет default-jdk (он также установит default-jre). Для установки выполните команду:

sudo apt install default-jdk

Установка OpenJDK определенной версии

Если вам нужно установить конкретную версию, то выполните одну из следующих команд. В репозиториях Ubuntu сейчас представлены OpenJDK версий 11 и 8.

sudo apt install openjdk-11-jdk sudo apt install openjdk-11-jre sudo apt install openjdk-8-jdk sudo apt install openjdk-8-jre

После установки, можно проверить, какие компоненты Java установлены, выполнив команду:

Установка Oracle JDK

Установка Oracle JDK свежей версии

Свежую версию Oracle JDK можно установить, используя PPA-репозиторий, подготовленный проектом linuxuprising.

Сначала добавим PPA-репозиторий. Выполняем следующие команды. При выполнении первой команды появится информационное сообщение, нажмите Enter для продолжения.

sudo add-apt-repository ppa:linuxuprising/java sudo apt update

Добавление PPA репозитория с Oracle JDK

Теперь выполним установку Oracle Java версии 12:

sudo apt install oracle-java12-installer

Во время установки нужно будет ознакомиться и принять лицензию:

Для установки Oracle Java версии 11 используйте команду:

sudo apt install oracle-java11-installer

Установка Oracle JDK старой версии

Если вам нужно установить Oracle JDK старой версии 8, то вы можете воспользоваться PPA-репозиторием, который подготовлен проектом webupd8. Для установки выполните в терминале следующие команды. При выполнении первой команды появится информационное сообщение, нажмите Enter для продолжения.

sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt install oracle-java8-installer

Как удалить Java

Если у вас установлены пакеты OpenJDK, то для их удаления используйте команду:

Или следующую команду, если требуется также удалить файлы конфигурации (полное удаление OpenJDK):

Для удаления Oracle Java используется команда:

sudo apt purge oracle-java*

Запуск Java-программ

Если Java установлена в Ubuntu Linux, то для запуска Java-программ обычно достаточно дважды щелкнуть по файлу программы. Он может иметь расширение .jar .

Для запуска .jar файлов из командной строки, выполните команду:

Заключение

Мы рассмотрели, какие версии Java бывают для Linux. Рассмотрели, как установить версию OpenJDK, а также версию Java от Oracle. Обычно начинающий пользователь вообще не понимает, что именно ему нужно установить. Поэтому краткое резюме: Если вам нужно просто запустить какую-нибудь Java-программу в Ubuntu Linux (Linux Mint и других подобных дистрибутивах), то устанавливайте OpenJDK JRE.

Источник

Оцените статью