2012-05-06 12 views
5

Ho cercato un modo per impostare il mio programma come predefinito per l'apertura dei file per un po 'e non ho trovato nulla. Ho un programma che dovrebbe essere universale per Mac, Windows e Linux, quindi non voglio usare un metodo che funziona solo con un sistema operativo. Quindi, come posso dare agli utenti la possibilità di impostare un'app Java come apri file predefinito? Userò la classe Desktop?Hai la possibilità di impostare l'applicazione Java come apri file predefinito?

risposta

0

No Java non supporta questo. Dovresti scrivere una piccola app per ogni sistema operativo che vuoi supportare nella sua lingua nativa (C++, obiettivo c, ecc.) Che dovrebbe semplicemente avviare la tua app java ogni volta che viene aperta. È quindi possibile impostare quell'app come programma predefinito.

0

si risponde qui su StackOverflow: Use a Java application as the Default Program for a particular file type?

Citazione la risposta:

file JAR non sono normalmente eseguibili. Cioè, un file JAR non è un'applicazione Windows valida. Non importa se l'estensione JAR stessa ha un'applicazione associata ad essa, perché il "verbo aperto" non viene usato ricorsivamente in altre definizioni "verbo aperto".

Invece,

  1. Creare un batch ("bat") del file (o piccolo EXE involucro) che chiama java (o javaw, a seconda dei casi) e utilizzare tale involucro eseguibile come il "Apri con" . (Ciò avrà una finestra di console intermedia fastidiosa se si utilizza un file batch.) Oppure,
  2. Modificare il Registro di sistema in modo che il "verbo Apri" per l'estensione avvia il JAR tramite java (o javaw). Alla fine, entrambi i moduli dovrebbero essere simili a: javaw -jar TheJarFile.jar "% 1%". (Si noti che javaw è un eseguibile, mentre TheJarFile.jar non è un eseguibile.)

See java - l'avvio delle applicazioni Java per come usare Java/javaw.

Questo è il caso per Windows. Analogamente su Linux e Mac dovresti creare un wrapper applicativo nativo che apre un file e passa il percorso del file al tuo java jar come parametro ed esegue il jar.