为了使用一些命令行参数从java启动它,我尝试以编程方式将某个运行为AppImage的应用程序本地化。在我的例子中,它是MuseScore应用MuseScore应用。
我用命令./MuseScore*.AppImage install安装了它。
我首先尝试从终端使用不同的选项dpkg-query -L musescore和which musescore来本地化应用程序。我没有回应。
在Windows中,我可以搜索注册表或解析命令行命令assoc ".myext"的结果。
然后,在Java中,编写使用
String program=null;
Process pr = Runtime.getRuntime().exec("cmd /c assoc \".myext\"");
try (BufferedReader reader = new BufferedReader(new InputStreamReader(pr.getInputStream()))) {
program=reader.readLine();
}我怎么能在Ubuntu做这个?
发布于 2022-11-13 22:42:05
我们可以通过三个步骤来实现这一点:
命令:xdg-mime query filetype path\to\a\file
结果:application/x-y-z
命令:xdg-mime query default application/x-y-z
结果:someapplication.desktop
XDG_DATA_DIRS和/home/myuser/.local/share/applications/中列出的文件夹中的文件。如果找到,将其解析为常规属性文件并搜索Exec属性。请参阅https://gist.github.com/lgvr123/cdeb8f432ddfdc0ae56ce23e71f1b177
命令:which someapplication (请注意,".desktop“已从步骤(2)的结果中删除)
结果:如果应用程序不在本地显示,则为/home/myuser/.local/bin/someapplication或空字符串。
发布于 2022-10-31 14:25:13
./MuseScore*.AppImage install将应用程序图像移动到~/.local/bin。
没有创建名为musescore的命令,因此在本例中使用的which命令是无用的。dpkg也不会给您任何提示,因为您没有使用dpkg来安装它。安装还创建了一些指向名为mscore-portable和musescore-portable的应用程序映像的符号链接。
您可以使用find-command来定位应用程序映像。我不需要这样做,我只是阅读了install-命令的输出。
要从命令行运行appimge,如果~/.local/bin不在您的路径中,则需要指定到appimage或其中一个符号链接的完整路径。
发布于 2022-11-17 21:54:07
如果需要知道AppImage二进制文件(或任何文件)的位置,请运行以下命令。
find / -name "*.AppImage" -exec ls -l {} \;命令find将搜索根/,然后ls -l将显示该文件的路径(S)。如果文件名已更改,请相应调整。
正如其他人指出的那样,使用dpkg-query -L musescore不会产生任何结果,因为二进制文件不是使用包管理器安装的;因此,dpkg并不“知道”它的存在。
使用which musescore也不会产生结果,因为AppImage不在路径中定义的目录中,可执行二进制的文件名也不是MuseScore.AppImage,而不是musescore。
https://askubuntu.com/questions/1438242
复制相似问题