Passare file come parametro al main, con funzione "Apri con"

di il
1 risposte

Passare file come parametro al main, con funzione "Apri con"

Chiedo scusa in anticipo per il titolo, ma non sapevo come riassumere il problema in poche parole. Cercherò di essere il più chiaro possibile. Vorrei fare in modo di aprire un file (ad esempio un file txt) con un programma scritto in Java. L'apertura del file non deve però avvenire da codice, ma facendo tasto destro sul file, "Apri con..." e scegliendo il programma .jar. La cosa è possibile? Una cosa simile riesco a realizzarla solo da prompt, passando il percorso del file come parametro (String [] args) .
Grazie in anticipo!

1 Risposte

  • Re: Passare file come parametro al main, con funzione "Apri con"

    Tormund ha scritto:


    Vorrei fare in modo di aprire un file (ad esempio un file txt) con un programma scritto in Java. L'apertura del file non deve però avvenire da codice, ma facendo tasto destro sul file, "Apri con..." e scegliendo il programma .jar. La cosa è possibile?
    La associazione tra estensioni e applicazioni è una cosa altamente system-dependent, ovvero è assolutamente specifica e differente da un S.O. all'altro. E Java non ha nulla a che fare, direttamente, con questo aspetto. Java non ha alcuna API o tool per gestire queste informazioni.

    Su Windows queste associazioni sono nel Registry di sistema, ti basterebbe vedere come è mappato il classico .txt -> Blocco note di Windows (o quello che hai associato) per comprendere cosa ci dovrebbe essere nel Registry per definire una tua associazione.
    Su Windows è possibile gestire graficamente queste associazioni, su Windows 7: Start -> Programmi predefiniti. Ma ci sono anche comandi da linea di comando chiamati: ASSOC e FTYPE.

    Ma ripeto: tutto questo non ha nulla a che fare con Java direttamente. Alla fin fine l'associazione fa avviare un eseguibile con eventuali parametri. Che poi sia java.exe/javaw.exe .... poco/nulla cambia per il sistema.
Devi accedere o registrarti per scrivere nel forum
1 risposte