Рейтинг:0

Как настроить файл .desktop для запуска файла .jar точно так же, как если бы он запускался из терминала

флаг cn

У меня есть программа Java, которая работает правильно, когда я запускаю java -jar "лиззи.jar" из терминала, но когда я дважды щелкаю по нему в Nautilus, он запускается (т.е. отображается пользовательский интерфейс), но возвращает ошибку «Нет такого файла или каталога» для одного из файлов (./leelaz), от которого зависит его правильная работа.

Я создал файл .desktop в /home/имя пользователя/.local/share/applications со следующим содержанием:

#!/usr/bin/env xdg-открыть
[Вход на рабочий стол]
Имя=Лиззи
Тип = Приложение
Exec=java -jar "/home/username/opt/Lizzie/lizzie.jar"
Icon=/home/username/opt/Lizzie/lizzie_custom_logo.png
Комментарий=Лиззи
Терминал=ложь

Запуск этого приводит к той же ошибке, что и двойной щелчок.

Я нашел и прочитал это сообщение, и я пытался использовать оба Терминал=истина и Терминал=ложь. Файл lizzie.jar настроен на выполнение как программу, и как при запуске из Nautilus, так и из терминала я не являюсь пользователем root. Это, конечно, может быть проблемой для Lizzie, а не для Ubuntu, но я думаю, что должен иметь возможность генерировать такое же поведение, как если бы он запускался из терминала.

Расстояние: Ubuntu 18.04.6 ЛТС; Ядро: 5.4.0-99-общий

Java-версия возвращает:

openjdk версия "11.0.13" 2021-10-19
Среда выполнения OpenJDK (сборка 11.0.13+8-Ubuntu-0ubuntu1.18.04)
64-битная виртуальная машина сервера OpenJDK (сборка 11.0.13+8-Ubuntu-0ubuntu1.18.04, смешанный режим, совместное использование)

Вопрос: Какова вероятная причина, по которой поведение при двойном щелчке и запуске .desktop отличается от терминала, и как я могу настроить файл .desktop, который дает точно такое же поведение, как если бы я запускал java -jar lizzie.jar из терминала?

Н.Б. Программа запускается в обоих случаях, но не может получить доступ к зависимости ./лилаз в случае двойного щелчка или использования .desktop. Затем Лиззи сообщает: Невозможно запустить программу "./leelaz": ошибка=2, Нет такого файла или каталога. Но, файл ./лилаз есть, и опять же все работает при запуске из терминала.

(В случае заинтересованности приложение Лиззи, интерфейс для Go AI Leela Zero.)

Martin Thornton avatar
флаг cn
Отвечает ли это на ваш вопрос? [Как я могу запустить исполняемый файл jar из файла рабочего стола в Lubuntu?](https://askubuntu.com/questions/684581/how-can-i-start-an-executable-jar-file-from-a- рабочий стол-файл-в-lubuntu)
флаг hr
Возможно, связано: [Почему в этом случае тильда не распознается как домашняя папка?] (https://askubuntu.com/questions/1192981/why-isnt-tilde-recognised-as-home-folder-in-this-case )
Christopher.L avatar
флаг cn
@MartinThornton Боюсь, что нет, и я отредактировал вопрос; Я написал только «~» в пути, чтобы не писать свое имя пользователя, но, конечно, я могу просто написать что угодно, я просто подумал, что они эквивалентны. Фактический путь указан в файле .desktop.
Christopher.L avatar
флаг cn
Кроме того, как указано, приложение запускается, т. Е. Графический интерфейс приложения отображается, но я получаю сообщение об ошибке. Вот почему я написал, что это может быть вопрос к разработчикам Lizzie, но я думаю, что странно, что он работает с терминала, поэтому я чувствую, что смогу это исправить.
Рейтинг:1
флаг cn

Какова вероятная причина поведения от двойного щелчка и запуск .desktop отличается от терминала

При успешном запуске java -jar "лиззи.jar", ваш текущий рабочий каталог совпадает с каталогом, в котором находится файл Лиззи.jar проживает. В противном случае, Лиззи.jar не будет найдено.

Лиззи.jar по-видимому, ожидает найти нужные ему файлы в своем собственном каталоге. Поэтому вам необходимо убедиться, что в качестве текущего каталога находится «lizzie.jar».

как я могу настроить файл .desktop, который дает точно такой же поведение, как если бы я запускал java -jar lizzie.jar из терминала?

Добавьте следующую запись рабочего стола в .рабочий стол пусковая установка:

Путь=/дом/имя пользователя/opt/Лиззи/
Christopher.L avatar
флаг cn
Это решило мою проблему! Мне немного любопытно, почему двойной щелчок по файлу .jar дал такое же поведение; не будет ли рабочий каталог просто установлен в каталог файла, который я дважды щелкнул?
vanadium avatar
флаг cn
Запуск файла двойным щелчком запускает его в каталоге, в котором он находится.
Christopher.L avatar
флаг cn
Именно так, и это `/home/username/opt/Lizzie/` , т.е. тот же путь, который я установил в .desktop, который заставил работать программу запуска рабочего стола.

Ответить или комментировать

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