Wie übergebe ich eine Datei als Argument an meine mit JAR Bundler erstellte Java-Anwendung?

8

Ich möchte meiner Anwendung einen bestimmten Dateityp zuordnen. Wenn ich also auf eine der Dateien dieses speziellen Typs doppelklicke, wird meine Anwendung geöffnet. Das funktioniert gut, aber die Datei, auf die ich doppelklickte, wird nicht als Argument an mein Programm übergeben.

Wenn ich zum Beispiel meine Anwendung mit txt -Dateien verknüpfe und auf todo.txt doppelklicke, öffnet sich meine Anwendung, aber ich habe keine Ahnung, auf welche txt -Datei ich doppelt geklickt habe.

Nach dem, was ich lesen kann, ist es so, dass es soll unter OS X funktioniert, und anstatt sich auf das Standardverhalten (wie es zB auf Windows läuft) zu verlassen, sollte ich ApplicationListener.handleOpenFile(); von com.apple.eawt . Wenn ich dies versuche, wird mir jedoch gesagt, dass ich das nicht darf:

  

Zugriffsbeschränkung: Auf den Typ ApplicationListener kann nicht zugegriffen werden   zur Einschränkung der benötigten Bibliothek   /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar

In noch eine Frage , ein Typ sagt, er habe die Lösung auf einer chinesischen Website gefunden , und die andere sagt, dass es laut der Lizenzvereinbarung von Java nicht legal ist Begriffe.

Ich kann es in der Mac OS X Developer Library und den eventuell erscheinenden Links nicht nennen nützlich auf diese Seite über JAR Bundler schickt mich einfach an eine tote Seite auf Apples Developer-Site .

Was vermisse ich? Soll das nahezu unmöglich sein, obwohl es auf anderen Betriebssystemen trivial ist?

Es ist wahrscheinlich erwähnenswert ... da JAR Dateien nicht mit Programmen unter OS X verknüpft werden können, habe ich ein OS X Application Bundle mit erstellt JAR Bundler ; ein Apple-Tool, das speziell dafür entwickelt wurde, Java-Anwendungen als native OS X-Anwendungen zu behandeln. Dadurch konnte ich den Dateityp mit meiner Anwendung verbinden.

    
kba 21.09.2011, 01:54
quelle

1 Antwort

2

Ich habe OSXAdapter für die Einstellungen verwendet. und beenden Sie die Funktionalität. Sie können den introspektiven Ansatz nutzen, um die Einschränkung zu vermeiden. Als com.apple.eawt.ApplicationListener ist veraltet könnten Sie versuchen, com.apple.eawt.OpenFilesHandler stattdessen.

    
trashgod 21.09.2011, 02:43
quelle