web-dev-qa-db-ja.com

NetbeansデスクトップショートカットファイルがUnityランチャーで機能せず、Execコマンドが機能する

Netbeansインストールスクリプトによって生成されたNetbeansデスクトップファイルに問題があります。/usr/share/applicationsフォルダーにある問題のファイルは非常に単純です。

[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

/usr/local/netbeans-8.0/bin/netbeansを使用して端末から実行した場合、netbeansアプリケーション自体は完全に正常に実行されます。ここに何かが足りませんか?ダブルクリックまたはランチャーから実行した場合、エラー出力を取得する方法がわかりません。ターミナルの実行にエラーはありません。何か案は?

編集: netbeansファイルは実行可能です。

2
Aargonian

/bin/shなしで試してください

Exec=/usr/local/netbeans-8.0/bin/netbeans
1
pl_rock

Syslogを調べて問題を見つけました。そもそもそうするべきだったかもしれませんが、私はまだLinux初心者です。誰かの時間を無駄にしてすみません!

どうやら、Netbeansはツールエージェントを選択できませんでした。具体的には、計測ツールJayatanaag.jar。何らかの理由で、これは、ターミナルから直接起動するときに失敗状態を引き起こしませんでしたが、.desktopファイルから実行する場合にのみ失敗を引き起こしました。このエラーを修正するために、jayatanaをアンインストールして再インストールしました。

Sudo apt-get purge jayatana
Sudo apt-get install jayatana

これにより、すぐに問題が修正されました。

1
Aargonian

最初に説明、ありがとう @ 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

netbeansshを実行します


何らかの理由でshが本当に必要な場合は、Exec=プロパティが間違っています。

他のJavaベースのIDEであるEclipseの例を次に示します

% 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
A.B.