2011-09-21 13 views
8

Desidero associare un tipo di file specifico alla mia applicazione, quindi quando faccio doppio clic su uno dei file di questo tipo specifico, la mia applicazione si apre. Funziona bene, ma il file su cui ho fatto doppio clic non viene passato come argomento al mio programma.Come posso passare un file come argomento alla mia applicazione Java creata usando JAR Bundler?

Se io per esempio associo la mia applicazione con txt file e si fa doppio clic todo.txt, la mia domanda si apre, ma non ho idea di che txt file fatto doppio clic.

Da quello che posso leggere, questo è come è supposto a lavorare su OS X, e invece di fare affidamento sul comportamento di default (come funziona su per esempio Windows), dovrei usare ApplicationListener.handleOpenFile(); da com.apple.eawt. Quando tento questo, però, mi è stato detto che io non sono autorizzato a farlo: restrizione

di accesso: il tipo ApplicationListener non è accessibile a causa di restrizione libreria richiesta /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Corsi/ui.jar

In another question here, un ragazzo dice di aver trovato la soluzione su some Chinese website, e l'altro dice che non è legale secondo l'accordo di licenza di Java termini.

Non riesco a trovarlo nello Mac OS X Developer Library e qualsiasi collegamento potrebbe sembrare utile su this site about JAR Bundler mi invia semplicemente a a dead page on Apple's Developer site.

Cosa mi manca? Si suppone che sia quasi impossibile farlo, anche se è banale su altri sistemi operativi?

E 'probabilmente la pena ricordare ... dal JAR file non possono essere associati ai programmi su OS X, ho creato un OS X Applicazione Bundle utilizzando JAR Bundler; uno strumento Apple realizzato appositamente per essere in grado di trattare applicazioni Java come applicazioni OS X native. L'utilizzo di questo è ciò che mi ha permesso di associare il tipo di file con la mia applicazione in primo luogo.

risposta

2

Ho usato OSXAdapter per le preferenze, circa ed esci dalla funzionalità. Potresti essere in grado di sfruttare il suo approccio introspettivo per evitare la restrizione. Siccome lo standard com.apple.eawt.ApplicationListener è deprecato, potresti provare a utilizzare com.apple.eawt.OpenFilesHandler.

+0

'OpenFilesHandler' mi dà lo stesso errore di restrizione di accesso di prima. Inoltre, non sono stato in grado di trovare nulla nel 'OSXAdapter' - non c'è documentazione disponibile per questo? – kba

+0

Ho appena fatto clic su "Scarica codice di esempio" e ho digitato "ant run". Da "README.txt": "L'esempio supporta anche la consegna dei documenti dal Finder implementando il metodo' handleOpenFile' e registrando i tipi di file supportati nel suo file 'Info.plist'." – trashgod

+0

Grazie, che (alla fine) ha funzionato. Ma seriamente, scopare chiunque abbia deciso che 'provare {...} catturare (Exception ex) {}' è stata una buona idea. Difficile eseguire il debug quando non compare nulla nella console. – kba

Problemi correlati