Java 経由でデフォルトのテキスト エディターでテキスト ファイルを開きますか? 質問する

Java 経由でデフォルトのテキスト エディターでテキスト ファイルを開きますか? 質問する

OK。簡単な質問です。ただし、答えはそれほど簡単ではないかもしれません。

Java でダウンロードしたファイルがあり、それがテキスト ファイルであることはわかっています。Java を使用して、そのテキスト ファイルをデフォルトのテキスト エディターで開く方法はありますか? すべての OS で機能する必要があります。そうでない場合は、メモ帳で開くようにします。

:\ これを実行する方法がない場合、JOptionPane を使用してテキスト ファイルの内容を表示できると思います...

ベストアンサー1

それは次のようにして実行できます:

java.awt.Desktop.getDesktop().edit(file);

これはjava.awt.Desktopのチュートリアル記事へのリンクです:

Java™ Standard Edition バージョン 6 では、ネイティブ アプリケーションと Java アプリケーションのパフォーマンスと統合のギャップが縮小されています。新しいシステム トレイ機能、スプラッシュ スクリーンのサポート、JTables の印刷機能の強化に加え、Java SE バージョン 6 ではデスクトップ API (java.awt.Desktop) API が提供されており、これにより Java アプリケーションは、ホスト プラットフォーム上の特定のファイル タイプに関連付けられたデフォルトのアプリケーションと対話できるようになります。

これはクロスプラットフォームですが、どこでもサポートされているわけではありません。Desktop API が使用可能かどうかを確認するために呼び出すことができるメソッドは isDesktopSupported です (詳細についてはリンクを参照してください)。先日、この API を使用して Swing クライアントで PDF を開きました。

残念ながら、一部の Windows プラットフォーム (XP および 2003) に影響する既知のバグJVM がクラッシュします。一度書いて、どこでもデバッグいつものように。とにかく、Windowsには素晴らしい回避策ユーザーの好みのアプリケーションを引き続き使用します。

if (System.getProperty("os.name").toLowerCase().contains("windows")) {
  String cmd = "rundll32 url.dll,FileProtocolHandler " + file.getCanonicalPath();
  Runtime.getRuntime().exec(cmd);
} 
else {
  Desktop.getDesktop().edit(file);
}

おすすめ記事