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ファイルは実行可能です。
/bin/sh
なしで試してください
Exec=/usr/local/netbeans-8.0/bin/netbeans
Syslogを調べて問題を見つけました。そもそもそうするべきだったかもしれませんが、私はまだLinux初心者です。誰かの時間を無駄にしてすみません!
どうやら、Netbeansはツールエージェントを選択できませんでした。具体的には、計測ツールJayatanaag.jar。何らかの理由で、これは、ターミナルから直接起動するときに失敗状態を引き起こしませんでしたが、.desktopファイルから実行する場合にのみ失敗を引き起こしました。このエラーを修正するために、jayatanaをアンインストールして再インストールしました。
Sudo apt-get purge jayatana
Sudo apt-get install jayatana
これにより、すぐに問題が修正されました。
最初に説明、ありがとう @ 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=
プロパティが間違っています。
他の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.