Desktop.getDesktop().open在KDE Plasma中未按预期运行



所以我运行的代码如下:


import java.awt.*;
import java.io.File;
import java.io.IOException;
public class Main
{
public static void main(String[] args)
{
new Thread(()->{
try
{
Desktop.getDesktop().open(new File(Main.class.getResource("/blank.jpg").getPath()));
} catch (IOException e)
{
System.out.println("oopse");
}
}).start();
}
}

每次调用Desktop.getDesktop((.open(new File(filePath((;文件路径以.jpg结尾,出于某种原因,文件是在firefox而不是Gwenwiew中打开的。

我希望这个应用程序是跨平台的,打开文件是我应用程序的重要组成部分。我需要它尊重用户对默认打开程序的偏好。我该如何编写代码,使其对Windows、OsX和Ubuntu(gnome和plasma(都友好?

我的KDE jpg偏好

下面是一个完全可运行的示例:https://github.com/CodingSorcerer/Desktop-Open-Test

所以我稍后再回到这个问题,结果发现我找到了解决方案。Java不遵循与KDE桌面相同的系统偏好。要在KDE等离子体中为JVM配置默认应用程序,您需要打开终端并编辑~/.config/mimeapps.list

这样做将更改基于Java的应用程序的系统默认值。

部分下方

[Default Applications]

我添加了以下行以获得所需的结果:

image/jpg=org.kde.gwenview.desktop;

最新更新