• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

java: networking - komischer anfang einer main-methode

Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
Code:
public static void main(String[] args) throws Exception {

        if (args.length != 1) {
            System.err.println("Usage:  java Translate "
                               + "English_string_to_translate");
            System.exit(1);
        }

        String stringToTranslate = URLEncoder.encode(args[0], "ISO-8859-1");
        ....

so steht das in der Lösung vom Prof zu ner aktuellen Hausaufgabe drin. Ich würde das jetzt aber gern auch verstehen.

also auch nach welzen in der Java-Insel und auch bei google finde ich auf die Stelle keine Erklärung, was hier mit args passiert. Ehrlich gesagt, weiss ich nichtmal wirklich wozu dieses String[] args überhaupt da ist, was das macht, wie es heisst und wie ich das einsetze.

Kann mir da einer mal kurz weiterhelfen (links, erklärungen usw.)? thx.
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.599
Reaktionen
10.243
args sind die argumente die du an ein jar übergibst. du backst aus deinen java klassen nen jar und startest das dann zb mit

java -jar meineklasse.java shiistdoof

shiistdoof wäre dann args[0] und genau, jap, richtig, eine string-variable.

mit dem konstrukt deines profs wird erstmal überprüft: hab ich beim starten alle parameter? aka enthält mein argumente array genau eine variable? und wenn nich geb ich aus das die angehängt werden soll. et voila.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
ok, ich hab jetzt rausgefunden, wie ich sowas in eclipse machen kann. aber über die konsole klappt es trotzdem noch nicht.

wenn ich in den ordner der datei gehe und dort folgendes eingebe:

Code:
java Name-der-Class-Datei Arg0
müsste er die Datei doch eigentlich mit args[0]="Arg0" beginnen koennen oder nicht?

er sagt mir immer das er "Name-der-Class-Datei" nicht finden kann (NoClassDefFoundError) trotzdem dort eine Name-der-Class-Datei.class Datei liegt die auch gerade eben erst aktualisiert wurde...
 
Mitglied seit
01.06.2007
Beiträge
761
Reaktionen
0
Poste mal bitte wie _genau_ du die Klasse aufrufst (also incl. "Name-der-Class-Datei")
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
java Translator hello

richtige reaktion wäre:

"Übersetzung: hallo"

in den Translator geht ein argument rein wird von babbelfisch übersetzt und kommt übersetzt dann wieder raus.

wie gesagt in eclipse läufts wunderbar
 
Mitglied seit
01.06.2007
Beiträge
761
Reaktionen
0
Original geschrieben von Sholvar
java Translator hello

richtige reaktion wäre:

"Übersetzung: hallo"

in den Translator geht ein argument rein wird von babbelfisch übersetzt und kommt übersetzt dann wieder raus.

wie gesagt in eclipse läufts wunderbar

Falls du die Klassen in packages hast musst du die Klasse relativ zu dem Package-Pfad aufrufen.

Also z.B. du benutzt package de.broodwar.meinprogramm, dann kompiliert mein Netbeans das in ./build/classes/de/broodwar/meinprogramm.
Du musst nun also in ./build/classes wechseln und dort

Code:
java de.broodwar.meinprogramm.DeineKlasse Parameter1

aufrufen...
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
ich nutz ja wie gesagt eclipse. Aber trotzdem hat mir dein Tipp auf den richtigen Denkweg geholfen. Ich bin immer direkt in den Ordner des packages gegangen und hab die Klasse direkt angesprochen. Jetzt hab ich es mal probiert, einfach eine ebene höher in \bin und dann den packagenamen mitangeben, dann funzt es:

Code:
C:\.....\bin> java translate.Translator hello
Übersetzung: hallo

Danke für die Hinweise, hab wieder viel neues gelernt. :D
 
Oben