Файл jar Javafx не запускается

Обновлено: 21.11.2024

Если вы не знакомы с модулями Java, вы почти наверняка столкнетесь с ошибкой: «Отсутствуют компоненты среды выполнения». Если вы пытаетесь освоить JavaFX, это может стать огромным разочарованием. Даже если вы считаете себя неплохо разбирающимся в Java.

Одним из побочных эффектов удаления Oracle JavaFX из JDK стало затруднение начала работы. Честно говоря, JavaFX должен быть очень интуитивно понятным и простым в использовании программным обеспечением. Но это один из немногих неловких камней преткновения, о котором спотыкаются многие люди.

Программа запуска Java генерирует ошибку «Компоненты среды выполнения отсутствуют». Он генерируется для всех немодульных проектов JavaFX, начиная с Java SE 9. Однако его можно исправить, добавив модули JavaFX с помощью аргументов командной строки.

Когда я впервые вернулся к JavaFX после использования его в Java 8, все мои старые прототипы разбились. Так что, если у вас была эта ошибка, не расстраивайтесь. Это относительно легко исправить.

Как мы это исправим

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

  • Вы находитесь в IDE, и когда вы нажимаете "Выполнить", IDE выдает ошибку
  • У вас есть приложение JavaFX, упакованное в виде jar-файла. Он не запустится, но вы достаточно умны, чтобы запустить его из командной строки. И вот… ошибка.

Решения в каждом случае могут быть одинаковыми, хотя, если вы не можете сделать свое приложение модульным, вам придется применять аргументы командной строки как в IDE, так и с вашим Jar.

Я начну с запуска из IDE, потому что это кажется естественным. Если у вас есть Jar, который не запускается, не стесняйтесь пропустить его.

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

Краткосрочное исправление компонентов среды выполнения

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

Чтобы настроить процесс запуска Java и заставить LauncherHelper не понять, что ваше приложение является экземпляром приложения JavaFX, вы можете создать фиктивный класс, который будет действовать как точка входа в программу. .

В этом случае мы установим MyLauncher в качестве основного класса для приложения, и единственной обязанностью этого класса будет запуск нашего фактического приложения!

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

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

Если вам интересно, почему JavaFX должен проверять наличие компонентов среды выполнения, ознакомьтесь с раскрывающимся списком ниже.

Зачем JavaFX нужны «компоненты времени выполнения»

В Java есть другие оконные решения, которым не нужна эта настраиваемая поддержка, так почему же JavaFX? Что ж, набор инструментов абстрактного окна (AWT) был с Java с самого начала. В этом смысле он встроен в среду выполнения Java. Swing, который также предоставляет структуру графического интерфейса пользователя, расположен поверх AWT.

Swing, JavaFX использует свой собственный набор оконных инструментов — glass — который используется в сочетании с prism, его графическим движком. Оба они находятся внутри модуля javafx.graphics. Когда был добавлен JavaFX, средство запуска Java было изменено, чтобы позволить JavaFX настроить себя перед запуском приложения.

Это делается внутри класса LauncherHelper, который вызывается при каждом запуске любого класса или jar-файла.

Как и во всем в Java, также имеет смысл делегировать полномочия там, где это возможно. Таким образом, когда приложение запускается, LauncherHelper проверяет, является ли оно программой JavaFX, и, если это так, передает обязанности FXLauncher , который выполняет некоторые предварительные проверки и готовится к запуску.

На самом деле, основной класс, который запускает FXLauncher, не является основным классом вашего приложения. В этом случае FXHelper выполняет все необходимые настройки, прежде чем вернуться в наше приложение.

Одно из исправлений, которое я рассмотрю сегодня, позволяет обойти этот тест, подтасовав процесс запуска, чтобы обмануть Java, заставив ее думать, что это не приложение JavaFX. Для небольших проектов это нормально, но если вы хотите разработать производственное приложение или приложение для портфолио, есть другие, более разумные способы сделать это.

Однако, если вы ищете действительно быстрое решение, оно подойдет.

Ответственное решение проблем с компонентами среды выполнения JavaFX

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

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

<р>1. Сделайте свое приложение модульным

Безусловно, самый надежный способ исправить эту ошибку – преобразовать ваш проект в модульный. Скажем так, это не всегда практично. Существует множество библиотек, которые в настоящее время не полностью поддерживают модули Java 9 (отличным примером является Apache POI)

Это также может немного пугать, если вы еще не перешли на модульные проекты.

Зачем переходить на модульную

Начиная с Java 9 и более поздних версий, Java стал модульным. Отчасти это сделано для того, чтобы дать вам возможность легко добавлять модули в образ среды выполнения, не добавляя кучу jar-файлов. Но отчасти потому, что Oracle больше не может предполагать, что Java будет существовать на каждой машине, на которую вы можете отправить свой код.

Несколько лет назад, когда Java агрессивно продвигала JRE среди производителей, можно было с уверенностью сказать, что JRE существовала на большинстве машин. Но, в наше время это просто не так. Таким образом, разработчики поставляют свою программу (которая может быть довольно маленькой) с JRE размером 200 МБ.

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

Цена, которую вы платите за сокращение до 150 МБ программы, которую вы в конечном итоге отправите, заключается в том, что вам нужно указать, какие модули требуются вашей программе. Если нет веских причин, по которым вам нужно оставаться предварительно модульным, я бы посоветовал несколько строк кода (в данном случае 5) более чем того стоит.

1. Получение доступа к другим модулям
  • Всякий раз, когда вы хотите включить модуль в свою программу, вам нужно использовать ключевое слово required

Некоторые модули используют переходное ключевое слово, чтобы указать модули, которые им нужны, но также и те, к которым у вас есть доступ! Хорошим примером этого является модуль javafx.controls, который требует транзитивных javafx.graphics и javafx.base. Это означает, что ваша программа может обращаться к javafx.graphics и javafx.base, но вам не нужно включать для них операторы модуля.

Конечно, если вы не используете инфраструктуру сборки, вам все равно потребуется загрузить jar-файлы javafx.graphics и javafx.base или jmods, чтобы ваша программа работала.

2. Предоставление рефлексивного доступа к вашему модулю
  • Нам нужно предоставить javafx.graphics отражающий доступ.

Графический модуль JavaFX вводит поля в контроллер с помощью отражения. Это полезно, потому что облегчает внедрение зависимостей, но это означает, что нам нужно предоставить отражающий доступ. Для этого требуется ключевое слово opens.

3. Предоставление другим пользователям доступа к вашему модулю
  • Часть процесса запуска нашего приложения заключается в том, чтобы позволить JavaFX быстро настроиться в фоновом режиме, а затем вызвать наш основной класс, когда он будет готов. Для этого нам нужно ключевое слово exports.

Частью этого процесса является то, что FXLauncher работает с нашим основным классом, чтобы запустить его (ознакомьтесь с разделом «Почему JavaFX нуждается в компонентах среды выполнения» в раскрывающемся списке выше), нам также необходимо разрешить это.

3. Собираем все вместе

В целом, наш файл module-info.java должен находиться в корне каталога нашего проекта, а для модуля с именем my.project он должен выглядеть следующим образом:

Это все, что нам нужно. Если вам нужны дополнительные сведения о добавлении модулей в проект, ознакомьтесь с моей статьей о настройке модульного проекта с помощью Maven.

Честно говоря, модульная система Java означает, что теперь Java специально создана для таких вещей, как добавление JavaFX. Для меня это логичный способ исправить проект.

<р>2. Добавьте в приложение аргументы командной строки

Это довольно гибкое исправление, которое можно выполнить в любой среде IDE. Предостережение заключается в том, что вам также нужно будет предоставить те же аргументы при запуске вашего Jar. Чтобы это работало, вам нужно знать расположение JavaFX SDK, который вы загрузили на свой компьютер.

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

Параметры модуля, которые необходимо добавить

Чтобы это исправить, мы собираемся передать Java два набора параметров при выполнении нашего кода.

1. Путь к модулю

Первый — --module-path , который указывает место в нашей файловой системе, где находятся jar-файлы JavaFX. Независимо от того, где вы его нашли, вам необходимо указать адрес папки lib (здесь хранятся файлы jar).

2. Модули для добавления

Второй аргумент --add-modules . Это определит, какие модули добавить в наш проект.Для самого простого проекта вам просто понадобится javafx.graphics. Однако базовый вариант использования приложения с кнопками (элементами управления), файлами FXML и т. д. потребует включения javafx.controls и javafx.fxml . Включите их через запятую, но без пробела.

Убедитесь, что вы оставили пробел между аргументами --module-path и --add-modules, иначе ошибки не исчезнут.

Далее мы добавим их в конфигурацию запуска IDE.

Добавление аргументов виртуальной машины в IDE

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

а. затмение

Чтобы добавить аргументы виртуальной машины в Eclipse, щелкните проект правой кнопкой мыши. Щелкните Запустить от имени, а затем Запустить конфигурации. Перейдите на вкладку «Аргументы», и вам понадобится поле «Аргументы виртуальной машины» (а не аргументы программы).

б. IntelliJ

В IntelliJ щелкните раскрывающийся список слева от кнопки запуска или в строке меню выберите "Выполнить" -> "Редактировать конфигурации" . На правой панели конфигурации запуска укажите основной класс и добавьте параметры виртуальной машины в поле ниже.

И все! Ваша программа должна работать в среде IDE.

Добавление аргументов виртуальной машины в Jar

Если зависимости или ограничения проекта мешают вам преобразовать проект в модульную структуру и перестроить JAR, вы все равно можете запустить JAR с помощью пакетного сценария (или сценария оболочки), предоставляющего аргументы времени выполнения средству запуска.

Пакетные сценарии позволяют сохранять исполняемые команды в обычный текстовый файл для последующего запуска. Мы сохраним комбинацию команды java для запуска jar ( java -jar myJar.jar ) с аргументами, необходимыми для указания компонентов среды выполнения. Итак, в каждом случае наш скрипт будет работать:

Если вы не знаете, как создавать эти файлы, вот как это сделать. Я расскажу, как создавать как пакетные сценарии, так и сценарии оболочки в системах Windows и Mac/Unix. В любом случае мы будем запускать одну и ту же команду.

<р>1. Создание пакетного файла

В Windows создайте файл с именем launcher.bat в том же каталоге, что и файл Jar. Щелкните правой кнопкой мыши и выберите «редактировать», чтобы отредактировать файл.

Добавьте текст, отредактировав путь к модулю так, чтобы он указывал на папку lib пакета JavaFX SDK, установленного в вашей системе, и сохраните. 👍

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

<р>2. Создание файла оболочки

В Linux или на Mac запустите терминал, перейдите в папку с файлом jar и создайте файл с помощью команды «touch launchScript».

Используя ваш любимый текстовый редактор, нам нужно добавить в файл две команды. Первый указывает системе запускать launchScript как сценарий оболочки, а второй запускает наше приложение с аргументами виртуальной машины.

Опять же измените путь к модулю, чтобы он указывал на папку lib пакета JavaFX SDK, установленного в вашей системе, и сохраните. Так же, как и в Windows, чтобы запустить приложение, просто дважды щелкните файл сценария или запустите его из терминала.

Средство запуска Java генерирует ошибку «Компоненты среды выполнения отсутствуют», если не удается настроить JavaFX перед запуском приложения. Это необходимо для Java Launcher, который требует, чтобы JavaFX был на пути к модулю, чтобы подтвердить выполнение требований среды выполнения перед запуском.

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

Внутри IDE аргументы можно передать виртуальной машине с помощью настроек параметров виртуальной машины в Run Configurations. После упаковки в виде Jar эти настройки будут устанавливаться вручную каждый раз, когда мы хотим запустить Jar. Это можно автоматизировать, создав файлы сценариев, отвечающие за запуск нашего приложения.

Я пытаюсь запустить файл .jar, и я знаю, что у меня установлена ​​и обновлена ​​​​java, но он говорит, что запуск не удался, и когда я пытаюсь снова, он дает анимацию открытия, после чего ничего не происходит. Кто-нибудь может дать мне совет?

MacBook Air 13″, macOS 11.1

Опубликовано 31 декабря 2020 г., 11:52

Все ответы

Загрузка содержимого страницы

Содержимое страницы загружено

Если в этом файле .jar есть какая-либо ссылка, которая предполагает наличие Java 6, то он не будет работать, или в файле .jar предполагается наличие установленных Java 8/271 JRE и JDK.

31 декабря 2020 г., 11:54

так мне нужно установить JRE и JDK?

31 декабря 2020 г., 12:25

Если он работает не только с JRE, возможно, стоит установить эквивалентную версию JDK в качестве теста. Если это сработает или нет, тогда у вас есть ответ.

31 декабря 2020 г., 12:30

Какой JDK мне следует использовать?

31 декабря 2020 г., 12:32

JDK, соответствующий той же версии установленной в данный момент JRE. Я не заглядываю тебе через плечо…

31 декабря 2020 г., 12:43

31 декабря 2020 г., 13:07

спасибо за помощь

31 декабря 2020 г., 13:09

Помогло ли добавление JDK решить, что файл .jar не работает?

31 декабря 2020 г., 13:36

Я еще не пробовал, я не могу понять, какая JRE у меня есть, я немного тупой, это java a JRE, если так, я не могу найти JDK

31 декабря 2020 г., 14:49

1 января 2021 г., 18:44

У меня также есть MacBook Air (13 дюймов, начало 2014 г.) с версией Mac OS Big Sur 11.1

1 января 2021 г., 18:47

Надеюсь, как профессиональный разработчик Java я смогу вам помочь. Прежде всего, если вы не разрабатываете (компилируете) свой собственный код Java, тогда все, что вам нужно, это JRE. Что касается версии, которая вам нужна - это скорее зависит от файла .jar, который вы пытаетесь запустить. Кто бы ни создал его, он использовал определенную версию Java, и вам, как правило, потребуется запустить ту же или более новую версию Java на вашем компьютере. Сказав, что когда Java перешел с версии 1.8 на 11, было довольно много изменений, и некоторые старые файлы Java jar могли работать неправильно.

Наконец - лицензирование. Oracle сменила Sun, когда дело доходит до продолжающейся разработки Java, и в течение некоторого времени они предоставляли свою Java бесплатно. Последняя бесплатная версия, которую я помню, это 1.8 (202), однако не паникуйте — вы все еще можете использовать любую из версий Java с открытым исходным кодом.

Вы можете скачать любую версию отсюда

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

Итак, если вы используете только Java-приложение, вам нужна только JRE. Если вы считаете, что можете внести некоторые изменения и перекомпилировать код, вам нужен JDK.

Мне показалось, что я где-то читал, что оригинальная Apple JRE больше не работает в Big Sur — я бы точно не стал использовать ее сейчас, так как она устарела. Перейдите к одной из загрузок по моей ссылке выше.

Если вы хотите проверить, какая версия Java по умолчанию используется на вашем компьютере, откройте командный терминал и введите

Итак, я пытаюсь выполнить простой тест, экспортируя очень простую программу JavaFX в Eclipse, но я продолжаю получать следующее сообщение об ошибке внутри командной строки, когда пытаюсь проверить, почему экспортированный .jar файл никогда не появляется или никогда не открывается, когда я дважды щелкаю файл .jar, чтобы запустить его:

"Компоненты среды выполнения JavaFX отсутствуют и необходимы для запуска этого приложения"

А структура моего Java-проекта выглядит так:

Я пытался экспортировать проект как "Runnable Jar File", но безрезультатно. Это должно быть общая проблема, не так ли?

Я буду очень признателен за любую поддержку.

Хранитель салуна

Библиотеки JavaFX не включены в ваш JAR. Вы должны добавить их либо в путь к классу, либо в путь к модулю при выполнении файла JAR с помощью переключателя -cp или переключателя --module-path.

Однако гораздо проще создавать и запускать приложения с помощью Maven.

Здравствуйте, Стефан! Спасибо за быстрый ответ.

Вы имеете в виду «Путь сборки Java» в Eclipse? Это та область, куда я добавляю файлы JavaFX? Я думал, что уже включил их в область пути к классам:

Как бы вы справились с этим? Еще раз спасибо.

Стефан ван Хульст написал: Библиотеки JavaFX не включены в ваш JAR. Вы должны добавить их либо в путь к классу, либо в путь к модулю при выполнении файла JAR с помощью переключателя -cp или переключателя --module-path.

Однако гораздо проще создавать и запускать приложения с помощью Maven.

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

Стефан ван Хульст написал: Библиотеки JavaFX не включены в ваш JAR. Вы должны добавить их либо в путь к классу, либо в путь к модулю при выполнении файла JAR с помощью переключателя -cp или переключателя --module-path.

Однако гораздо проще создавать и запускать приложения с помощью Maven.

Правильно, и я успешно делал это ранее, но проблема, с которой я столкнулся или которая не совсем мне понятна, заключается в том, что я пытаюсь распространить простое небольшое приложение с графическим интерфейсом JavaFX, которое Я сделал для семьи и друзей, но я бы не хотел, чтобы им приходилось запускать какой-либо код командной строки для доступа к файлу jar. Как мне распространять исполняемый файл, который не столкнется с такой проблемой? Прошу прощения, но для меня это все ново. Еще раз спасибо.

Хранитель салуна

Самый простой способ решить вашу проблему — создать приложение в виде модуля Jigsaw с помощью Maven, а затем выпустить библиотеки JavaFX вместе с вашим модулем. Наконец, добавьте пакетный скрипт, который будет выполнять основной модуль вашего приложения.

Предположим, что у вас есть основной класс, который выглядит следующим образом:

Чтобы сделать ваше приложение модулем Jigsaw, добавьте файл module-info.java в корневой пакет. В моем примере это родительский каталог каталога com:

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

Создайте свое приложение с помощью Maven. Вот пример POM:

Этот POM объявляет зависимость от javafx-fxml, которая автоматически подтянет большинство других необходимых вам зависимостей JavaFX.

Он также настраивает maven-jar-plugin, который создает JAR-файл основного модуля приложения, так что полученный JAR-файл будет содержать ссылки на все его зависимости. Основной модуль приложения будет выводиться в каталог target/dist/lib. Основной класс также настроен.

POM настраивает maven-dependency-plugin для копирования всех зависимостей вашего приложения в каталог target/dist/lib. Это означает, что когда вы создаете свое приложение, JAR вашего приложения и зависимости JavaFX, которые ему нужны, будут находиться в каталоге target/dist/lib.

После создания приложения его можно запустить из папки target/dist с помощью следующей команды:

Вы можете создать пакетный сценарий, содержащий эту команду, и поместить его в папку target/dist. Теперь вы можете заархивировать и распространять папку dist, а вашим пользователям останется только выполнить содержащийся в ней пакетный скрипт.

Хорошо, я обязательно посмотрю на это и постараюсь изучить. Я не знаком с Maven, но вижу, что несколько человек уже рекомендовали мне научиться использовать его для своих проектов Java. Не похоже, что это слишком сложно для изучения (недолгая кривая обучения), но я думаю, что узнаю наверняка, лол. Еще раз спасибо Стефан за ваше время и поддержку. Я действительно ценю вас.

@Stephan Спасибо за мини-руководство по Maven. Я взял его, чтобы начать изучать Maven.
Есть ли файл main.fxml для выполнения кода в MyApplication?

Не могли бы вы также описать, как опубликованная вами командная строка Java подключается к программе MyApplication?
В папке lib есть 9 jar-файлов. Все они ищут файл манифеста?

Хранитель салуна

Норм Раддер написал: Есть ли файл main.fxml для выполнения кода в MyApplication?

Я не тратил время на разработку, я просто создал пустой пользовательский интерфейс с помощью NetBeans. Вот оно:

Не могли бы вы также описать, как опубликованная вами командная строка Java подключается к программе MyApplication?

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

С помощью переключателя --module (или -m для краткости) вы указываете имя модуля, который вы хотите использовать в качестве точки входа приложения. Обычно вы должны написать -m com.example.app/com.example.app.MyApplication, чтобы указать как имя модуля, так и имя основного класса, но поскольку модуль упакован как исполняемый JAR, Java получает имя основного класса из манифеста JAR, который я настроил с помощью элемента в Maven POM.

Обратите внимание, что если вы поместите библиотеку в путь к классам, а не к пути к модулям, она будет считаться частью «безымянного модуля» и не будет автоматически загружать модули, которые требуются в дескрипторе модуля. Вот почему я рекомендовал Аарону превратить свое приложение в модуль Jigsaw и поместить его в путь к модулям, потому что в противном случае вам придется явно загружать все модули JavaFX с помощью переключателя --add-modules. р>

В папке lib находится 9 jar-файлов. Они все ищут файл манифеста?


Нет. Все они ищут дескриптор модуля. Дескриптор модуля определяет имя модуля. Вы явно указываете имя модуля, который хотите использовать в качестве точки входа. Java будет использовать только манифест модуля, который вы указали в качестве точки входа, для определения основного класса.

Спасибо за файл fxml и подробные пояснения.


Это тот класс, который нужен?

Вы ожидаете, что опубликованный код будет выполняться должным образом?
Я понял:

У вас есть JAR-файл, но вы не можете его запустить? Узнайте, как запустить файл Jar в Ubuntu и других дистрибутивах Linux.

Как выполнить файл Jar в Ubuntu и других дистрибутивах

Файл Jar представляет собой исполняемый файл Java. Поэтому в вашей системе должна быть установлена ​​Java. Если в вашей Ubuntu установлена ​​Java, вы сможете запустить ее, дважды щелкнув или выбрав параметры правой кнопкой мыши.

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

Вам нужна только среда выполнения Java, и вы можете установить ее с помощью приведенной ниже команды в дистрибутивах на основе Ubuntu:

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

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

Исправить эту ошибку очень просто. Щелкните правой кнопкой мыши файл .jar и откройте свойства.

Теперь в меню свойств откройте вкладку "Разрешения". Установите флажок «Разрешить выполнение этого файла как программы».

Теперь вы можете просто дважды щелкнуть файл .jar, чтобы запустить приложение, в моем случае AndroMouse. Вы можете видеть, что он работает без каких-либо проблем.

Вы должны иметь в виду, что вы должны включить разрешение «Разрешить выполнение как программу» для каждого загружаемого приложения .jar. По умолчанию он отключен в качестве меры безопасности. Вы должны включать его только для тех приложений, которым вы доверяете и знаете, что они безопасны.

Дальнейшее устранение неполадок с Jar-файлом, не работающим в Linux

Даже если у вас установлена ​​среда выполнения Java и установлены разрешения на выполнение, в некоторых старых версиях Ubuntu файл Jar не запускается. Вот исправление для этого.

Щелкните правой кнопкой мыши файл .jar и выберите параметр «Открыть в другом приложении»:

Теперь на следующем экране выберите параметр Показать другие приложения:

В других приложениях, если вы не найдете опцию для Java, сначала установите Java Runtime Environment. Обычно вы должны увидеть опцию Открыть с помощью OpenJDK Java x Runtime. Выберите его и успешно запустите.

Наслаждайтесь запуском файла Jar в Ubuntu!

Дополнительный совет: запустите jar-файл из терминала

Запуск jar-файла из терминала имеет свои преимущества. Он может отображать полезные сообщения об ошибках, если файл jar не запускается успешно.

В терминале используйте следующую команду:

Я надеюсь, что это краткое руководство было полезным для всех вас. Какие приложения на основе Java вы используете? Есть ли у вас другие проблемы с ними? Дайте мне знать в комментариях ниже!

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