簡體   English   中英

在默認文本編輯器中打開文本文件...通過Java?

[英]Open a text file in the default text editor… via Java?

好。 簡單的問題。 也許不是那么簡單的回答:

我有一個用Java下載的文件,我知道它是一個文本文件。 有什么方法可以使用Java在默認文本編輯器中打開該文本文件? 它必須適用於所有操作系統,否則我只能用記事本打開它。

:\\我想如果沒有辦法做到這一點,我可以使用JOptionPane並顯示文本文件的內容......

你可以這樣做:

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

這鏈接到java.awt.Desktop上的教程文章

Java™標准版第6版縮小了本機應用程序和Java應用程序的性能和集成之間的差距。 除了新的系統托盤功能,啟動畫面支持和JTable的增強打印外,Java SE版本6還提供了Desktop 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);
}
Desktop.getDesktop().edit(File f);

當然你可以在文本編輯器中配置並使用Runtime.exec來啟動它。 但是我無法想出任何確定默認編輯器的方法,特別是在與系統無關的方式中。

也許你最好的選擇是確定你所在的幾個最流行的平台中的哪一個,然后找到一種方法來啟動該平台上的默認編輯器。 例如,在Window上你會得到默認編輯器,如果你做“啟動filename.txt”,我很確定有一個Linux等價物。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM