首先,我使用的是 Kubuntu 12.04。
我剛剛下載並解壓縮了一些軟體的獨立安裝(Intellij 的 Phpstorm IDE,但我認為這並不重要)。我已使用 sudo 將解壓縮後的目錄複製到我的/opt
目錄中。
我可以從命令列啟動主 shell 腳本,而無需使用,sudo
沒有任何問題。
我想從我的Application Launcher
so 運行該應用程序,我Edit Applications...
從啟動器圖標運行該應用程序,並將主 shell 腳本的路徑添加到新條目 ( /opt/PhpStorm-111.344/bin/phpstorm.sh
) 中並保存。每當我單擊新新增的條目時,沒有任何反應,應用程式不會啟動。我見過這個關於在 kde 中註冊應用程式的問題,而且我認為它不適用於這種情況,因為這就是對話框Edit Applications...
應該做的(我認為)。
那我錯過了什麼?我是否需要在對話方塊條目中指定運行命令的另一種方式?這是.desktop
文件問題嗎?還有別的事嗎?
/opt/PhpStorm-111.344/bin/phpstorm.sh
我從以下位置運行了命令ALT+F2
跑步框,調用終端。我收到一條訊息,抱怨$JAVA_HOME
找不到該變數。
現在,我的文件中確實有一個$JAVA_HOME
環境變數設置.bashrc
,並且可以從命令中看到它echo $JAVA_HOME
。同樣,如果我只是打開一個終端並從那裡運行 shell 腳本,我就可以毫無問題地運行應用程序,因此$JAVA_HOME
可以在該上下文中看到該變數。我已經登出並重新登入並運行source ~/.bashrc
,但似乎都沒有幫助。
我現在認為這是變數的某種用戶權限問題導致$JAVA_HOME
其無法運行。
有什麼建議麼?
答案1
根據您的顯示/xsession 管理員的設定方式,在呼叫~/.bashrc
之前可能不會取得來源startkde
,因此如果您正在設定該位置$JAVA_HOME
,則 KDE 桌面上的任何內容都不會看到它。
有用的是,startkde
設定為*.sh
從kde4-config --path lib | tr : '\n' | sed -n -e 's,/lib[^/]*/,/env/,p'
.這可能包含~/.kde4/env
或類似的內容,因此如果您希望 KDE 會話範圍內存在一個變量,只需刪除一個export
帶有 的 shell 腳本即可。
答案2
我有一個簡單的解決方法,涉及 2 行腳本。它只是將變數重新匯出$JAVA_HOME
到適當的路徑,然後呼叫應用程式的主 shell 腳本。將 KDE 應用程式啟動器重新指向此新腳本將如預期啟動應用程式。
我仍然不確定為什麼需要這樣做,因為我可以$JAVA_HOME
在我設計的腳本的上下文之外清楚地看到正確的變數定義。因此,如果有人能夠闡明為什麼會發生這種情況,我很樂意將其標記為該問題的適當答案。