# Verknüpfte Datei und Startparameter übergabe



## Davide (28. Jan 2011)

*Ziel*

Ich möchte das unter Windows Dateien die mit meiner Applikation verknüpft sind nach einem Doppelklick sich (den eigenen Pfad) als Pramater übergeben.

*Frage*

Ist das mit Java überhaupt direkt möglich oder muss ich das evt. mit einer anderen Sprache lösen, die dann den Parameter an meine Applikation weitergibt? Ich würde gerne wissen in welcher Richtung ich da suchen muss um das umsetzten zu können.


Ich suche jetzt schon einige Zeit danach, leider bin ich noch nicht wirklich fündig geworden, da das Meiste was ich gefunden habe über die Konsole ging und das war nicht wirklich das was ich gesucht habe.


----------



## XHelp (28. Jan 2011)

Soweit ich weiß übergibt Windows von Haus aus die Datei als Parameter mit. D.h. rein theoretisch solltest du über das String-Array der Main-Methode daran kommen können


----------



## Davide (28. Jan 2011)

Habs gerade versucht und eine Textdatei mit der Applikation verknüpft um es schnell zu testen.

Ich nehme den Parameter und der wird dan im Frame in einem Label gesetzt.

Das Problem ist, dass wenn ich ein Doppelklick auf die Textdatei mache, kommt eine Fehlermeldung, dass die Datei keine zulässige Win32 - Anwendung ist.


```
public static void main(String[] args) {
        // TODO code application logic here
        if(args.length > 0){
            NewJFrame f = new NewJFrame(args[0]);
            f.setVisible(true);
        } else {
            NewJFrame f = new NewJFrame("kein Parameter");
            f.setVisible(true);
        }
    }
```


----------



## r.w. (28. Jan 2011)

Hallo Davide,



Davide hat gesagt.:


> Habs gerade versucht und eine Textdatei mit der Applikation verknüpft um es schnell zu testen.
> 
> Ich nehme den Parameter und der wird dan im Frame in einem Label gesetzt.
> 
> Das Problem ist, dass wenn ich ein Doppelklick auf die Textdatei mache, kommt eine Fehlermeldung, dass die Datei keine zulässige Win32 - Anwendung ist.



Das liest sich für mich, als hättest Du die Datei mit der .jar verknüpft. Die ist auch keine zulässige Win32-Anwendung.
Eine .jar-Datei wird ja auch nur als Parameter z.B. der java.exe übergeben. Du könnstest ein Batch-Skript schreiben,
mit dem die Textdatei verknüpft wird und in dem dann das Java-Programm mit der Textdatei als Parameter
gestartet wird. 

Vielleicht kann man auch den gesamten Aufruf in der Windows-Dateiverknüpfung unterbringen.
Da bin ich momentan aber nicht sicher. Hab grad keinen Windows-Rechner zur Hand.

Ich hoffe, ich hab mir für die Zeit noch halbwegs verständlich ausgedrückt. ;-)

VG ROlf


----------



## XHelp (28. Jan 2011)

Mit einer run.bat sollte es klappen, entweder:

```
//falls die Konsole offen bleiben soll:
javaw -jar app.jar %*

//falls die geschlossen werden soll:
start javaw -jar app.jar %*
```
Und dann einfach die Bat-Datei bei "öffnen mit" auswählen


----------



## tagedieb (28. Jan 2011)

Siehe auch Windows "oeffnen mit..."


----------



## Davide (28. Jan 2011)

Hätte ich den Thread gefunden, hätte ich mir das öffnen dieses hier spaaren können. Deswegen ist richtiges Suchen wichtig.

Ich habs mir angeschaut, wie ich das jetzt sehe hab ich also diese Möglichkeiten.

1.) Bat Launcher vor die Applikation setzen mit dem die Dateien verknüpft werden.
2.) Exe Launcher vor die Applikation setzen.
3.) Ein Registry Eintrag bei der Installation erstellen, dass dann den Dateityp mit der Bat oder Exe Datei verknüpft.
4.) Den assoc Befehl über die cmd ausführen bei der Installation. 

Ich werde das bald mal alles Testen und schauen was sich lohnt, wenn ich es spezifisch für Windows machen will und schau mir auch noch wie es auf anderen Betriebssystemen aussieht mit dem verknüpfen.


[Edit]

Ich hab gerade die Applikation mit Launch4J in eine exe gewrappt und damit klappt es auch sehr gut, der Parameter wird übergeben. 

Danke euch allen für die Hilfe.


----------

