OK. Domanda semplice. Forse non è una risposta così semplice, però:
Ho un file che ho scaricato in Java e so che è un file di testo. C’è un modo in cui posso usare Java per aprire quel file di testo in qualunque sia l’editor di testo predefinito? Deve funzionare per tutti i sistemi operativi, altrimenti lo renderei aperto solo con Blocco note.
: \ Immagino che se non ci fosse modo di farlo potrei usare JOptionPane e mostrare il contenuto del file di testo …
Puoi farlo con:
java.awt.Desktop.getDesktop().edit(file);
Questo link all’articolo tutorial su java.awt.Desktop :
Java ™ Standard Edition versione 6 riduce il divario tra prestazioni e integrazione di applicazioni native e applicazioni Java. Insieme alla nuova funzionalità del vassoio di sistema, al supporto della schermata iniziale e alla stampa avanzata per JTables, Java SE versione 6 fornisce l’API Desktop (java.awt.Desktop), che consente alle applicazioni Java di interagire con le applicazioni predefinite associate a tipi di file specifici su la piattaforma host.
È multipiattaforma, ma potrebbe non essere supportata ovunque. C’è un metodo che puoi chiamare per verificare se l’API Desktop è disponibile, chiamata isDesktopSupported (vedi il link per maggiori spiegazioni). L’altro giorno stavo usando questa API per aprire i PDF in un client Swing.
Sfortunatamente c’è un bug noto che riguarda alcune piattaforms Windows (XP e 2003) che causeranno il crash della JVM. Scrivi una volta, esegui il debug ovunque , come al solito. Ad ogni modo, per Windows c’è una bella soluzione alternativa che utilizza ancora l’applicazione preferita dell’utente:
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);
Certamente è ansible configurare nell’editor di testo e utilizzare Runtime.exec per avviarlo. Ma non riesco a pensare ad alcun modo per determinare l’editor di default, specialmente in un modo indipendente dal sistema.
Forse la tua migliore opzione è quella di identificare quale delle più popolari piattaforms su cui ti trovi e poi trovare un modo per avviare l’editor predefinito su quella piattaforma. Ad esempio, su Window otterrai l’editor di default se fai “start filename.txt”, e sono abbastanza sicuro che ci sia un equivalente Linux.