Файл ярлыка рабочего стола Netbeans не работает в средстве запуска Unity, команда Exec работает в течение срока

У меня были проблемы с файлом рабочего стола 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 является исполняемым.

2
задан 27 August 2015 в 04:10

4 ответа

попробуйте без /bin/sh

Exec=/usr/local/netbeans-8.0/bin/netbeans
0
ответ дан 27 August 2015 в 14:10
  • 1
    Спасибо за парней мысли. Хотя, я разъяснюсь, there' s ничто в разделе Windows. Мое основное беспокойство является what' s на Ubuntu, потому что he' s получающий доступ ко всем нашим системам через это. Таким образом, я хотел знать, небезопасен ли раздел Ubuntu. – CBroad 2 December 2016 в 16:28

Сначала объяснение, спасибо @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.
1
ответ дан 27 August 2015 в 14:10

Я выяснил проблему путем просмотра системного журнала. Я, вероятно, должен был сделать это для начала, но я - все еще новичок Linux. Извините, если я потратил впустую чье-либо время!

, По-видимому, Netbeans не удавалось взять агент инструмента. А именно, инструмент Jayatanaag.jar инструментария. По некоторым причинам это не вызвало состояние сбоя при запуске непосредственно с терминала, но вызвало сбой только при выполнении из .desktop файла. Для фиксации этой ошибки я удалил и переустановил jayatana:

sudo apt-get purge jayatana
sudo apt-get install jayatana

Это сразу устранило проблему.

0
ответ дан 27 August 2015 в 14:10
  • 1
    Хорошо, тогда можно ли далее определить то, что точно Вы подразумеваете под разделом Ubuntu, небезопасно? Вы подразумеваете, что Ваша целая сеть уязвима для нападений шпиона? – RichArt 2 December 2016 в 18:57

Щелкните правой кнопкой мыши на рабочем столе, создайте средство запуска, затем добавьте: «/usr/share/applications/netbeans-8.2.desktop» в качестве команды и дайте ей понятный заголовок. При первом запуске вы получите предупреждение о ненадежном приложении; выберите Отметить как исполняемый.

Удачного кодирования.

-1
ответ дан 9 February 2020 в 01:54

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

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