无法为 XMind 创建 .desktop 启动器

无法为 XMind 创建 .desktop 启动器

我下载并安装了XMind,它以.zip文件夹而不是.deb文件的形式出现,这意味着我必须使用 bash 脚本来安装它。

我将解压的文件放入名为“.installed我的主文件夹”的临时文件夹中。

我正在尝试为安装时附带的可执行文件创建一个桌面启动器/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
Name=XMind
Comment=Mind mapping software
Icon=/home/user01/Pictures/Icons/new_branding_new_logo.png

我把它放进去了/usr/share/applications/

问题是,每当我尝试运行该应用程序时都会收到此错误:

在此处输入图片描述

直接单击可执行文件即可正常启动应用程序,无论文件所有者是谁(root 或用户),错误都是相同的,所以我不明白我做错了什么。任何建议都很好。

此外,错误日志显示如下:

!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
configuration~/

解决方案:

(感谢 Katu)以下是我解决问题的方法:

在与可执行文件相同的位置创建一个 bash 脚本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

答案1

当您以 运行它时./Xmind,您的当前目录与可执行文件是同一目录Xmind。要在文件中复制该效果.desktop,请添加Path=一行来设置工作目录:

Path=/home/user01/.installed/xmind-8-linux/XMind_amd64/

有关详细信息,请参阅For more information, see.desktop关于Path条目作用的文件规范


我还建议将.desktop文件从移动/usr/share/applications/home/user01/.local/share/applications/,因为如果您将应用程序存储在主目录中,它可能仅适用于您,而不是系统上的所有用户。

答案2

看来 Xmind 会尝试在执行的位置创建一个文件夹。您必须在执行 .desktop 文件之前告诉它移动到该位置。来自这篇文章,尝试这样的操作:

Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"

答案3

感谢所有信息。

我遇到了同样的问题,但找到了一种使用 Arronax 简化的方法。它在此进行了描述讨论

Arronax 可以完成这项工作,因为它可以指定应用程序(XMind)应在哪个文件夹中启动。

希望这能有所帮助,
菲尔

相关内容