You are not logged in.

  • Login

1

Saturday, February 14th 2009, 3:10pm

.txt open with own java program

Also ich habe ein klines JNotePad programmiert und wollte es ausprobieren...
aber was ich noch machen muss ist wenn man auf eine txt datei klick soll sich mein programm offnen und die action open durchfuhren...

aber ich habe keine idee wie ich das machen konnte

wäre nett wenn mir da jemand helfen wurde...

danke
lg
error777

2

Sunday, February 15th 2009, 7:51am

Rechtsklick -> "Öffnen mit"?

Oder direkt in den Einstellungen/Ordneroptionen dein Programm der Dateiendung zuordnen.

3

Monday, February 16th 2009, 3:14pm

hmmm
das weis ich nur wie soll mein program wissen dass es das offnen soll???
ich glaube daruber hast du nciht gedacht?...

ich habe auch eine .exe datei fur mein program erstellt also findet er das auch unter offnen mit...
aber woher soll mein programm wissen dass ich jetzt die offnen aktion will bzw. soll es das durchführen...?

das wurde ich gerne wissen...
danke

4

Monday, February 16th 2009, 8:28pm

Ich kenne mich ja nicht so mit Windows aus - aber normalerweise wird der Pfad zur Datei doch immer als (erster) Parameter übergeben.
Zumindest kann man das so in der Dateitypenverwaltung einstellen.

Quoted

application.exe %1

5

Monday, February 16th 2009, 10:45pm

ja also du hast deine pfad zB: "C:\Program Files\myProgram.exe" und dann kann man parameter einfugen zB: -nomaste -game hl oder so was...
aber ich kenne mich da auch nciht aus ich habe einfach nen Action Listener...

6

Tuesday, February 17th 2009, 9:29pm

naja, und du hast irgendwo eine void main(String[] args)

und in args[1] wird der Dateinamen sein. Den musst du dann innerhalb deiner Klassen durch reichen.

7

Thursday, February 19th 2009, 5:43pm

poah das ist ziemlich schwer weil ich es nie gemacht habe und ich verstehe es nicht...

Text.do > Open with > program.exe
und dann weiss ich nicht mehr was ich machen soll

was muss ich in mein code ändern und was noch?
bitte hilf mir da.. danke

danke,
lg
error777

8

Thursday, February 19th 2009, 9:32pm

vergiss dein Programm erstmal und versuchs allein mit diesem Code:

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
public class OpenWithTest {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		for(String arg : args) {
			System.out.println(arg);
		}
	}
}

9

Saturday, February 21st 2009, 2:03pm

ok das habe ich

mein run.bat enthält:

java Main open
pause

und meine Main.class:

public class Main {
public static void main(String[] args) {
for(String arg : args)
System.out.println(arg);
}
}

was soll ich jetzt machen?
daweil verstehe ich dass mein open paramerer ins args array drinnen ist.

lg,
error777

10

Saturday, February 21st 2009, 2:38pm

ich habe das Gefühl du suchst nach einer allgemeingültigen Lösung. Die gibt es aber nicht. Dein Programm muss den Pfad zur Datei schon irgendwie selbst verarbeiten.
PS: Benutze die Syntaxbuttons

11

Saturday, February 21st 2009, 6:06pm

das tue ich nciht das war nur so damit ich das testen kann...
oder habe ich falsch verstanden in welche richtung ich das machen muss??

12

Saturday, February 21st 2009, 7:48pm

wie weit bist du denn jetzt?

daweil verstehe ich dass mein open paramerer ins args array drinnen ist.

das heißt, dass du die batch ausführen konntest, und den Parameter gesehen hast?

dann hast du doch alles, was du brauchst, oder?

13

Sunday, February 22nd 2009, 9:53am

Also ich weiß nicht recht, was das mit den args soll. Er programmiert doch ein JNotePad. Das ist doch bestimmt grafisch und das J sagt mir, dass er Swing verwendet. Dann sollte er sich lieber mal die JFileChooser-Klasse (http://www.dpunkt.de/java/Referenz/Das_P…x.swing/29.html) und die FileInputStream-Klasse (http://www.dpunkt.de/java/Referenz/Das_Paket_java.io/20.html) anschauen.

14

Sunday, February 22nd 2009, 2:43pm

ich glaube den FileChooser hat er - oder muss er noch an anderer Stelle implementieren.

Mir geht in dem Thread um das Starten per Klick auf die Datei. Windows sollte daraufhin einen Aufruf wie "fileopener.batch dateiname.txt" machen

und das sollte wiederum ein java FileOpener dateiname.txt machen
das sollte dann in die class FileOpener { ... main(String[] args) reinkommen
und dort musst du das irgendwie behandeln.

15

Monday, February 23rd 2009, 12:29am

ja genau das was d0nut gesagt hat, so will ich es haben...
aber ich weiss auch nicht wie das gehen soll...
:(((

16

Monday, February 23rd 2009, 11:05pm

Dann hat d0nut völlig recht. Irgendwo in deinem Programm gibt es die main()-Methode. Die wird benötigt, damit dein Programm überhaupt startet. Wenn du den Dateityp mit deinem Programm verknüpft hast (also "mit öffnen" und "immer öffnen mit" im Explorer (ka. wie die genauen Namen waren, ich nutze Linux)) dann sollte diese main()-Methode über ihr args[]-String-Array den Dateinamen bekommen. Ich würde meinen, dass es das erste Argument (args[0]) ist (teste das lieber. Auch weil d0nut meinte es ist args[1]).

Das kleines Programm was du im Post vom Samstag, 21. Februar 2009, 14:03 geschrieben hast, sollte dir nur vermitteln wie du an das Argument kommst.

Quoted

daweil verstehe ich dass mein open paramerer ins args array drinnen ist.

Offenbar mit Erfolg! :-)

Wie du den Dateinamen nun verwenden musst um die Datei in dein Programm zu laden kann dir hier niemand sagen. Du hast das Programm ja geschrieben. Woher sollen wir das dann wissen.
Mit

Java Quellcode

1
File file = new File(args[0]); // oder 1?

kannst du dir jedenfalls das File-Objekt initialisieren.
Mit

Java Quellcode

1
FileInputStream fileInputStream = new FileInputStream(file);

kannst du dir einen Stream erzeugen, mit dem du die Datei auslesen kannst.

Aber das solltest du ja alles schon wissen, wenn du einen Texteditor programmiert hast. Wo liegt also das Problem?

17

Tuesday, February 24th 2009, 11:19am

naja ich weis nicht wie ich dieses args[pos] erkennen soll ich habe vollgendes gemacht:

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
public static void main(String[] args) {
    final JPad p = new JPad();
 
    for(int i = 0; i < args.length; i++) {
        if(args[i] == "open") {
            System.out.println(args[i]);
            open();
        }
        else System.out.println(args[i]);
    }
}


und wie schon oben steht habe ich eine .bat datei erstellt. die enthält:

java Main open
pause

nur irgendwie nimmt java meine args nicht...
probier es mal selber es funktionietrt nicht...

deswegen bin ich verwirrt...
mein open() methode funktioneirt einwandsfrei und main ganzes program auch.

nur ich kann in der if statement nicht sehen wann args "open" ist.

Lg.

PS: ok ich habe es inzwischen geschafft. jetzt printet er mir die args.

danke an beide fur eure hilfe...

18

Tuesday, February 24th 2009, 11:27am

Ich brauche jetzt aber noch was:

Damit mein Program Benutzerfreundlicher ist, will ich irgendwie eine Registry Entry machen damit der User das nicht immer selber machen muss:
"file > open with", weil nicht jeder user kennt sich da aus.

also ich bräuchte ne registry entry wo er jedem file mit der abkürzung .txt automatisch mit meinem program verlinkt und dem parameter "open" vergibt.
und wenn möglich soll das file auch das gleiche icon haben wie mein program.

deswegen wurde ich da wieder eure hilfe brauchen.

kann ich das irgendwie machen?
funktioniert das uber Java?

danke

Lg.

19

Tuesday, February 24th 2009, 9:05pm

Java ist platformunabhänig. Das heist, dass dein Programm auch unter Linux läuft. Die Registry ist aber ein reines Windows-Ding. Deswegen wird das warscheinlich nicht von normalen Java unterstützt. Es gibt aber Spezialbibliotheken:
jRegistryKey oder JNIRegistry ist vielleicht etwas für dich. Du must dann diese externen Bibliotheken in dein Java-Programm einbinden.

20

Thursday, February 26th 2009, 2:52pm

ok wenn es nicht funktioniert dann lass ich es...
danke
theme erledigt...

Social bookmarks