Utilizzo di un’associazione di file in un’applicazione Java

Sono in procinto di scrivere un’applicazione cross-platform basata su Swing in cui voglio utilizzare un’associazione di file che è stata registrata con il sistema operativo.

Così ho raggiunto il punto in cui posso fare clic su un file e la mia app viene caricata, ma quello che devo sapere è come posso far sì che la mia applicazione sappia dove è il file che l’ha lanciata e quindi ne interroga il contenuto.

C’è qualcosa in più che devo fare con la registrazione dell’associazione file? O può farlo Java per me?

Non sono positivo, ma mi aspetterei che il nome del file che stai elaborando per file clic finirà negli argomenti del tuo metodo main() . Hai provato / controllato?

Se questo è su Windows (non hai specificato):

Nel registro, ovunque sia stato specificato il percorso dell’applicazione per il tipo di file registrato, aggiungere a "%1" . Questo è un parametro speciale Windows si riempirà con il percorso del file che è stato cliccato. Quindi la tua voce di registro sarebbe simile a c:\path\to\app.exe "%1"

Un modo per fare ciò è fare in modo che l’associazione di file esegua l’app Java tramite uno script o un file batch e fare in modo che il file batch passi il percorso del file come argomento della riga di comando, variabile d’ambiente o proprietà Java.

Le estensioni possono essere collegate alle applicazioni, è ansible impostare le chiavi di registro durante l’installazione. Di quali chiavi hai bisogno è documentato qui:

http://support.microsoft.com/?scid=kb%3Ben-us%3B185453&x=6&y=11

Da java non è ansible accedere al registro di Windows in modo diretto. Usando Runtime potresti fare qualcosa del genere http://www.rgagnon.com/javadetails/java-0480.html

Ci sono due comandi su Windows che possono aiutare, assoc e ftype, in modo che non sia necessario fare il bucato sporco per manipolare il registro. Richiama i comandi usando, per esempio, java.lang.Process. http://www.rgagnon.com/javadetails/java-0592.html