Dateiverknüpfung öffnen
-
Hallo zusammen.
Ich hab mal eine Frage bezüglich des Öffnens einer selbst erstellten Datei. Und zwar habe ich ein Programm unter Java geschrieben, welches Informationen in Dateien abspeichern kann. Nun möchte ich, dass wenn ich auf eben eine dieser Dateien klicke (ist ja möglich mit der Verknüpfung zu einem jar-file), die Javaapplikation gestartet wird und der Inhalt dieser Datei abgerufen werden kann bzw. der Inhalt dieser Datei zur Verfügung steht. Woher weiß also das Programm nach dem öffnen der Datei mit der Dateinamenerweiterung, dass eben diese geöffnet wurde? Dann könnte man nämlich im Konstruktor die jeweiligen Informationen über die Datei rausfiltern. Das gleiche sieht man ja auch, wenn man auf ein Word-Dokument klickt. Dann wird der Inhalt dessen nach dem öffnen von Word ja auch angezeigt.
Thx für eine Antwort.
-
Es wird normalerweise
PROGRAMMNAME "PFAD/DATEINAME-AUF-DIE-DOPPELT-GEKLICKT-WURDE"
aufgerufen. Zumindest gilt das für Windows und AFAIK Gnome und KDE.
D.h. Du checkst einfach die Kommandozeilenparameter, die Du in
void main(String args[])
übergeben kriegst.
-
Wenn er eine Datei doppelklicken will, wird ihm die Kommandozeile nicht viel nützen *vermut*
Ehrlich gesagt habe ich keine Ahnung was du so wirklich willst bzw es klingt eher javauntypisch für mich!
-
[b]test.java[/b] public class test { public static void main(String args[]) throws Exception { if(args.length == 0) { System.out.println("Keine Datei zum Öffnen angegeben. Bitte manuell wählen."); System.exit(1); } System.out.println("Folgende Datei wird jetzt geöffnet: >" + args[0] + "< .. Loading..."); Thread.sleep(3000); } }
Kompilieren. Liegt als "test.java" und "test.class" in "H:\Temp".
Neue Textdatei anlegen, nach "datei.krass" umbenennen.
Im Explorer unter Extras->Ordneroptionen->Dateitypen->Neu
Als Dateierweiterung dann "KRASS" angeben.
Unter dieser Erweiterung dann unter "Erweitert" ( ) unter der Option "open" folgendes als Anwendung eingeben: "E:\Pfad\zur\JRE\bin\java.exe" -cp H:\Temp test "%1" %*Danach sollte ein Doppelklick auf jede KRASS-Datei Dein Java-Programm öffnen.
Anstatt den Typ manuell einzurichten, kannst Du auch einen Doppelklick drauf machen und dann erstmal "Java Binary" auswählen.
Als dann die entsprechenden Änderung machen.So, das war die Windows-Variante.
-
Hey, danke, probier ich aus.
Thx again
-
Hat funktioniert. Das Problem das ich jetzt noch habe ist, dass Bilder in dem Klassenverzeichnis jetzt nicht mehr geladen werden, da in dem Linkdateiverzeichnis danach gesucht wird. Ich habe die Verzeichnisse zu den Bildern nämlich relativ zur Klassendatei gesetzt. Hat hierzu vielleicht auch jemand eine Lösung? Den Classpath mit -cp zu setzen reicht offenbar nicht aus
-
Thx, hat sich erledigt.
-
Help123 schrieb:
Thx, hat sich erledigt.
Netterweise würde man trotzdem mitteilen, WIE man letztendlich sein eigenes Problem gelöst hat.
Wobei ich die Problemstellung sowieso nicht begriffen hatte...
-
OK,
mit getClass().getResource(<Image>) wird die Bildressource aus dem Klassenpfad genommen und nicht aus dem ausführenden Pfad
-