|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 26.02.2004, 15:05 Titel: Mal wieder eine Javafrage |
|
|
Angenommen ich wöllte z.B. einen Texteditor in Java programmieren, oder auch irgendetwas anderes, bei dem man mit doppelklick auf eine entsprechend endende Datei das Programm aufruft, also wie bei .txt unter Windows der Editor aufgerufen wird, wie mache ich das in Java? Das Problem ist, das Javapps ja über Konsole gestartet werden - man kann sie nicht direkt starten (auser es sind solche spezial-dinger, lasse ich jetzt aber mal auser acht). Also kann Windows sie auch nicht direkt starten (Habs getestet, kommten aber herzliche Grüße vom System des geht net) Wie kann man das aber sonst realisieren, oder kann man mit Java keine solche Programme machen? Eine weitere möglichkeit wäre, ein Programm zu schreiben, das dann wiederum über system(java argv[1]) das macht. Dann kann ich aber acuh das ganze Programm in C++ schreiben. |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.02.2004, 20:24 Titel: |
|
|
Das "im Explorer doppelklicken" ist keine Systemeigenschaft, die man in C++, Java oder Basic programmiert, sondern Vielmehr eine Einstellung des Explorers, die man im Explorer Selbst oder in der Systemregistrierung (regedit) vornehmen kann, wobei beides auf das selbe hinausläuft: DU registrierst eine Dateiendung z.B. *.bla für ein Programm was in deinem Fall java wäre mit den Parametern deiner class-Datei und der doppelgecklickten Datei z.B. "C:\java\bin\java.exe MeineAnwendung.class %s" wobei das %s ein Platzhalter für die doppelt geklickte Datei ist (wnn mich niocht alles täuscht). Wei genau die einträge in Regedit aussehen müssen, kann ich die allerdings nicht so schnell sagen. _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 26.02.2004, 21:25 Titel: |
|
|
Ja, klar, aber das Problem ist das ich .class-Dateien nicht fest mit einem bestimmten Programm verknüpfen kann, da es mit dem Javainterpreter verknüpft sein muss, da Javaklassen um zu laufen zuerst durch den Interpreter laufen müssen. Der Vorgang sieht so aus:
-starten der Datei
-System ruft durch Dateieigentschaft (Endung) den Interpreter auf, das Programm mit den Parameter auszuführen.
Aber wenn ich die Datei an das Runtime-Enviroment übergebe, erhält zwar das die Parameter, nicht aber mein eigentliches Programm. |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 26.02.2004, 21:48 Titel: |
|
|
Diese Parameter erhält der Javainterpreter, aber er müsste sie an die Classdatei weiterreichen. Eventuell muß dafür ein spezieller Parameter vorher gesetzt werden, such z.B. mal nach einem -- Parameter, also in der Art java.exe -par1 -par2 ClassDatei -- -progpar1 -progpar2
Obwohl eigendlich die classdatei als trennparameter reichen sollte.
prinzipiell müsste es also reichen, dass du java.exe -par1 -par2 classdatei -progpar1 -progpar2 ausfufst...
Erstelle doch einfach mal ein Testprogramm, dass die die der classdatei übergebenen Parameter anzeigt und teste die beiden oben genannten Varianten in einer Konsole aus... _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
Nahar Senior JLI'ler
Alter: 36 Anmeldedatum: 16.07.2003 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 27.02.2004, 06:58 Titel: |
|
|
Hab ich schon probiert...
Das Problem ist das man javaklassen nur über java name -parameter aufrufen kann, nicht direkt über den Explorer - geht net, habs getestet. Deshalb startet man javaklassen im normalfall ja auch über Batdateien. Ich kann deshalb nicht eine Bat-schreiben (davon abgesehen das mit einer bat wieder die Portablität verloreren geht) die selbst immer die Parameter empfängt, und diese dann weitergibt. Bis jetzt sieht die Bat so aus:
für die Parameter-Geschichte müsste sie aber so aussehen:
Code: | empfange Parameter2
java classname -Parameter2
|
Ich habe allerdings nirgends in der Hilfe eine Bat-funktion gesehen mit der man Parameter empfangen kann - ist ja egentlich auch Schwachsinn, nur eben hier nicht. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|