<AI>
xdg-openでブラウザが開かない場合、
Javaの標準ライブラリ(java.awt.Desktop)やシステム設定に依存せず、
直接ブラウザのコマンド(firefox や google-chrome など)を呼び出すのが最も確実です。
以下に具体的なコードと手順をまとめました。

1. ブラウザ呼び出し用のJavaコード(ProcessBuilder使用)

java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.file.Path;

public class BrowserViewer {

    public static void main(String[] args) {
        String htmlString = "<html><body><h1>こんにちは、Manjaro Linux!</h1></body></html>";
        String filePath = "/tmp/sample.html";

        // 1. ファイルへ書き込み
        try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
            writer.write(htmlString);
            System.out.println("ファイルの書き込み完了: " + filePath);
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        // 2. ブラウザで開く(xdg-openの代替)
        String browserCommand = "firefox"; // または "google-chrome-stable", "brave" など
        String absolutePath = Path.of(filePath).toUri().toString();

        try {
            // ProcessBuilder を使用してブラウザのプロセスを起動
            new ProcessBuilder(browserCommand, absolutePath).start();
            System.out.println("ブラウザで表示中...");
        } catch (IOException e) {
            System.err.println("ブラウザの起動に失敗しました: " + browserCommand);
            e.printStackTrace();
        }
    }
}

2. Manjaroでの環境に応じた代替コマンド
上記のコード内の String browserCommand = "firefox"; の部分を、お使いのManjaro環境のブラウザに合わせて変更してください。
Firefox: "firefox"
Google Chrome: "google-chrome-stable"
Brave: "brave"Vivaldi: "
vivaldi"Microsoft Edge: "microsoft-edge-stable"

3. 注意点・トラブルシューティング

GUI環境で実行しているか確認: プログラムをSSH接続などのCUI(テキスト)環境で動かそうとしている場合、ブラウザのウィンドウを表示することはできません。

絶対パスの指定: Javaの ProcessBuilder にURL(file:///tmp/sample.html)として渡すことで、どのブラウザでも確実にローカルHTMLをレンダリングできます。

実行権限の確認: 使用するブラウザのパスが通っている必要があります。
端末で直接 firefox や chrome と打ち込んでブラウザが起動するか確認してみてください。