ファイル システムをスキャンして特定の XML レポート ファイルを探し、それらをテーブルに一覧表示するプログラム (GUI = JavaFX) があります。これらの XML レポートは、XSLT によって Web ブラウザに表示されます。Java アプリケーションでそのようなレポートをクリックして、ブラウザに表示できるようにしたいと考えています。ハンドラーは既に作成しており、正しい URL が決定されています。私のWindowsシステムでは、これは
file://localhost/C:/report.xml
XML は問題ではありません。ブラウザで手動で開くと、すべて正常に動作します。ただし、Googleを使用してブラウザでファイルを開く方法を尋ねると、常に次のように表示されます。
java.awt.Desktop.getDesktop().
browse(new java.net.URI("file://localhost/C:/report.xml"));
これは http URL (Web サイト) に適したソリューションであるため、既定のテキスト エディター (Notepad++ など) で常に XML ファイルを開きます。したがって、デスクトップのブラウズ メソッドはブラウズを実際に強制するのではなく、デフォルトの開く操作にフォールバックするだけです。
問題は次のとおりです。Windows の「Open with >」機能と同様に、ブラウザで XML を開くように Java に強制するにはどうすればよいでしょうか。
ここに sscce (ファイルが存在しない場合でも、ブラウザーでファイルにアクセスしようとする必要があります):
public class XMLOpener {
public static void main(String[] args)
{
String fileURL = "file://localhost/C:/report.xml";
try {
java.awt.Desktop.getDesktop().browse(new java.net.URI(fileURL));
} catch (Exception e) {}
}
}