Во-первых, я использую Kubuntu 12.04.
Я только что скачал и распаковал автономную установку некоторого программного обеспечения (Intellij's Phpstorm IDE, но я не думаю, что это имеет значение). Я скопировал распакованный каталог в свой /opt
каталог с помощью sudo.
Я могу запустить основной скрипт оболочки из командной строки без использования sudo
и без каких-либо проблем.
Я хотел бы запустить приложение из своего Application Launcher
, поэтому я запустил Edit Applications...
приложение из значка Launcher и добавил путь к основному скрипту оболочки в новую запись ( /opt/PhpStorm-111.344/bin/phpstorm.sh
) и сохранил его. Всякий раз, когда я нажимаю на недавно добавленную запись, ничего не происходит, приложение не запускается. Я виделэтот вопрос о регистрации приложений в kde, и я не думаю, что это применимо к данной ситуации, поскольку именно это и Edit Applications...
предполагается в диалоге (я так думаю).
Так что я упускаю? Нужно ли мне указать другой способ запуска команды в диалоговой записи? Это .desktop
проблема файла? Что-то еще?
Я выполнил команду /opt/PhpStorm-111.344/bin/phpstorm.sh
изALT+F2
бегатьbox , вызывая терминал. Я получил сообщение, жалующееся на то, что $JAVA_HOME
переменная не может быть найдена.
Теперь у меня действительно есть $JAVA_HOME
настройка переменной окружения в моем .bashrc
файле, и ее можно увидеть из echo $JAVA_HOME
команды. Опять же, я могу запустить приложение без проблем, если просто открою терминал и запущу оттуда скрипт оболочки, так что переменная $JAVA_HOME
будет видна в этом контексте. Я выходил из системы, входил снова и запускал source ~/.bashrc
, и ни то, ни другое не помогает.
Теперь я думаю, что это какая-то проблема с правами пользователя на доступ к $JAVA_HOME
переменной, которая мешает ее запуску.
Какие-либо предложения?
решение1
В зависимости от того, как настроен ваш менеджер display/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
туда скрипт оболочки с .
решение2
У меня есть простой обходной путь, включающий скрипт из 2 строк. Он просто повторно экспортирует $JAVA_HOME
переменную в соответствующий путь, а затем вызывает основной скрипт оболочки приложения. Повторное указание KDE Application Launcher на этот новый скрипт запускает приложение, как и ожидалось.
Я все еще не уверен, зачем мне это нужно, так как я могу ясно видеть правильное $JAVA_HOME
определение переменной вне контекста моего придуманного скрипта. Так что если кто-то может пролить свет на то, почему это может происходить, я с радостью отмечу это как подходящий ответ на этот вопрос.