У меня были проблемы с файлом рабочего стола Netbeans, сгенерированным сценарием установки netbeans. Рассматриваемый файл, который находится в папке / usr / share / apps, очень прост:
[Desktop Entry]
Encoding=UTF-8
Name=NetBeans IDE 8.0
Comment=The Smarter Way to Code
Exec=/bin/sh "/usr/local/netbeans-8.0/bin/netbeans"
Icon=/usr/local/netbeans-8.0/nb/netbeans.png
Categories=Application;Development;Java;IDE
Version=1.0
Type=Application
Terminal=0
Само приложение netbeans работает отлично, если я запускаю его из терминала, используя /usr/local/netbeans-8.0/bin/netbeans
. Я что-то здесь упускаю? Я не могу понять, как получить сообщение об ошибке, если я запускаю его двойным щелчком мыши или из модуля запуска. Нет ошибок при запуске терминала. Есть идеи?
Редактировать: Файл netbeans является исполняемым.
попробуйте без /bin/sh
Exec=/usr/local/netbeans-8.0/bin/netbeans
Сначала объяснение, спасибо @kos
При помощи Exec=
строка такой как
Exec=/usr/local/netbeans-8.0/bin/netbeans
netbeans
выполняется в sh
уже, потому что Exec=
строки в файлах на рабочем столе выполняются как команды в sh
, не в bash
или иначе. Так
Exec=/bin/sh -c "/usr/local/netbeans-8.0/bin/netbeans"
порождает чрезмерный sh экземпляр. Просто
Exec=/usr/local/netbeans-8.0/bin/netbeans
будет работать netbeans
в sh
Если Вам действительно нужно по некоторым причинам sh
, чем Ваш Exec=
свойство является неправильным.
Вот пример с Eclipse, другим основанным на Java IDE
% sh "/opt/eclipse/eclipse"
/opt/eclipse/eclipse: 1: /opt/eclipse/eclipse: Syntax error: "(" unexpected
Запустить команду с sh
Вам нужно -c
переключатель:
Exec=/bin/sh -c "/usr/local/netbeans-8.0/bin/netbeans"
-c string
If the -c option is present, then commands are read fromstring.
If there are arguments after the string, they are assigned to the positional
parameters, starting with $0.
Я выяснил проблему путем просмотра системного журнала. Я, вероятно, должен был сделать это для начала, но я - все еще новичок Linux. Извините, если я потратил впустую чье-либо время!
, По-видимому, Netbeans не удавалось взять агент инструмента. А именно, инструмент Jayatanaag.jar инструментария. По некоторым причинам это не вызвало состояние сбоя при запуске непосредственно с терминала, но вызвало сбой только при выполнении из .desktop файла. Для фиксации этой ошибки я удалил и переустановил jayatana:
sudo apt-get purge jayatana
sudo apt-get install jayatana
Это сразу устранило проблему.
Щелкните правой кнопкой мыши на рабочем столе, создайте средство запуска, затем добавьте: «/usr/share/applications/netbeans-8.2.desktop» в качестве команды и дайте ей понятный заголовок. При первом запуске вы получите предупреждение о ненадежном приложении; выберите Отметить как исполняемый.
Удачного кодирования.