Я загрузил и установил XMind
, это стало a .zip
папка в противоположность .deb
файл, что означает, что я должен был установить его с помощью сценария удара.
Я поместил извлеченные файлы во временную названную папку .installed
в моей домашней папке.
Я пытаюсь создать настольное средство запуска для исполняемого файла, который шел с установкой в /home/user01/.installed/xmind-8-linux/XMind_amd64/XMind
.
Я создал a .desktop
файл как это:
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/home/user01/.installed/xmind-8-linux/XMind_amd64/XMind
Name=XMind
Comment=Mind mapping software
Icon=/home/user01/Pictures/Icons/new_branding_new_logo.png
И я поместил его в /usr/share/applications/
.
Проблема состоит в том, что каждый раз, когда я пытаюсь запустить приложение, я получаю эту ошибку:
Нажатие на исполняемый файл непосредственно обычно запускает приложение, и ошибка является тем же независимо от того, кто владеет файлом (корень или пользователь), таким образом, я не понимаю то, что я делаю неправильно. Любой совет был бы большим.
Кроме того, в журнале ошибок говорится это:
!SESSION 2016-11-16 14:14:38.215 -----------------------------------------------
eclipse.buildId=R3.7.0.201611010032
java.version=1.8.0_111
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments: -os linux -ws gtk -arch x86_64 -data ../workspace
!ENTRY org.eclipse.osgi 4 0 2016-11-16 14:14:38.410
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:78)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
Обновление:
Выполнение ./XMind
от терминала работает как ожидалось.
Выполнение целого пути /home/user01/.installed/xmind-8-linux/XMind_amd64/XMind
создает ошибку.
Когда ошибка происходит, приложение создает a configuration
папка в ~/
каталог, который обычно располагается в той же папке как исполняемый файл. Я все еще не понимаю то, что происходит здесь.
Решение:
(Благодаря Katu) Это - то, как мне удалось решить проблему:
Создайте сценарий удара в том же месте как названный исполняемый файл xmind.sh
Войдите в файле:
#!/bin/bash
(cd /home/user01/.installed/xmind-8-linux/XMind_amd64/ && ./XMind)
Создайте .desktop средство запуска с новым сценарием вместо исполняемого файла.
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/home/user01/.installed/xmind-8-linux/XMind_amd64/xmind.sh
Name=XMind
Comment=Mind mapping software
Icon=/home/user01/Pictures/Icons/new_branding_new_logo.png
Кажется, что Xmind попытается создать папку в месте, от которого это выполняется. Необходимо будет сказать .desktop файлу перемещаться в то местоположение прежде, чем выполнить его. Из этого сообщения , попробуйте что-то вроде этого:
Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"
При выполнении его как ./Xmind
текущий каталог является тем же каталогом как Xmind
исполняемый файл. Для дублирования того эффекта в .desktop
файл добавьте Path=
строка для установки рабочего каталога:
Path=/home/user01/.installed/xmind-8-linux/XMind_amd64/
Для получения дополнительной информации, см. .desktop
спецификация файла на том, что Path
запись делает .
я также рекомендовал бы переместиться .desktop
файл от /usr/share/applications
до /home/user01/.local/share/applications/
, с тех пор, если Вы храните приложение в рамках своего корневого каталога, это - вероятно, приложение только для Вас, а не всех пользователей в системе.
Спасибо за всю информацию.
Я имел ту же проблему, но нашел способ упростить использование Arronax. Это описано в этом обсуждении.
Arronax делает задание, поскольку возможно указать, в какой папке должно быть запущено приложение (XMind).
Надеюсь, это поможет,
Phil