~ и $ {ПОЛЬЗОВАТЕЛЬ} не работают в .desktop файлах

32-разрядная Ubuntu 12.04

Я пытаюсь вручную создать .desktop файл для запуска приложения. Я хочу выполнить команду:

java -jar ~/.osbuddy/osbuddy.jar

Когда я выполняю свой .desktop файл. Однако это не работает. Я затем попробовал:

java -jar /home/${USER}/.osbuddy/osbuddy.jar

который не работал также.

Наконец,

java -jar /home/branon/.osbuddy/osbuddy.jar

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

Спасибо за любой свет можно потерять. Это - мой первый раз на AskUbuntu, таким образом, я приношу извинения, игнорирую ли я некоторые нормы обычного права этой формы. Если я нарушил, исправьте меня.

1
задан 8 April 2015 в 21:25

2 ответа

Команда в a .desktop файл не выполняется оболочкой, но использующий некоторый системный вызов. Из-за этого Вы не можете использовать синтаксис оболочки как ~ или ${USER} там

4
ответ дан 3 December 2019 в 07:02

Как Florian Diesch говорит, расширение тильды и расширение параметра не поддерживаются в средствах запуска (т.е. .desktop файлы). Но если необходимо использовать их - или другие расширения оболочки - можно сделать так, заставив средство запуска выполнить оболочку с параметрами командной строки, говоря оболочке выполнить определенную команду и выход.

Таким образом можно сделать команду:

sh -c 'java -jar ~/.osbuddy/osbuddy.jar'

Я использовал sh (который в Ubuntu является dash) вместо bash) для эффективности и минимализма. Но если Вам была нужна расширенная функция, обеспеченная bash, Вы могли использовать это вместо этого.

Если путь ~/.osbuddy/osbuddy.jar допустимо для многочисленных пользователей, и многочисленные пользователи будут использовать средство запуска, я рекомендую sh -c (или если Вы предпочитаете, bash -c) путь. Однако, если это только для Вас, и Ваша главная цель состоит в том, чтобы не вводить /home/brannon... хорошо, передавая команду sh -c включает некоторый дополнительный ввод, также.

0
ответ дан 3 December 2019 в 07:02

Другие вопросы по тегам:

Похожие вопросы: