4. Juni 200223 j Hi, wie kann ich denn aus einem Java-Programm eine Variable mitsamt Inhalt an eine bat-Datei weitergeben? :confused: Cu Snopsy
4. Juni 200223 j also, ich habe eine Methode in einer Klasse, die sieht wie folgt aus: public void ueberpruefe(String out) { String wert = out; StringTokenizer st = new StringTokenizer(wert, "/"); String neuerWert = st.nextToken(); System.out.println("Neuer Wert: " + neuerWert); if (neuerWert.equals("Test") || neuerWert.equals("DwhBasis")) { String rueckgabewert = "1"; System.out.println(rueckgabewert); } else { String rueckgabewert = "0"; System.out.println(rueckgabewert); } }[/PHP] In einer anderen Klasse habe ich die main-Methode, die folgendermaßen aussieht: [PHP]public static void main(String[] args) { String out = args[0]; Abfrage a = new Abfrage(); a.ueberpruefe(out); } Am anfang starte ich eine bat-Datei. In dieser wird eine Variabel "%5" gefüllt. Diese wird über den Programmaufruf in der Batdatei in das Programm übergeben. Die Variable ist immer so aufgebaut: "/Test/Programm/Start". Nun soll überprüft werden, was zwischen den ersten beiden Slash's ( / ) geschrieben steht. Je nachdem soll 0 oder 1 zurückgegeben werden. Diese 0 oder 1 will ich dann wieder an meine bat-Datei zurückgeben, damit das Programm da dann weiterlaufen kann. Wie mache ich das? Grüßle Snopsy
4. Juni 200223 j So auf die schnelle keine Idee aber mal ne blöde Frage, wenn du doch Java programmierst warum übergibst du den Wert nicht einfach an den nächsten Programmteil? Oder wie hast du vor in der Bat weiterzumachen? Aber so rein durchs drübergucken, irgendwie hast du nen paar unnötige Veriablen =) Du könntest oben direkt (String wert) machen und wert unten dann benutzen und rückgabe wert müßtest du auch nicht extra machen sondern könntest direkt über System.out.println 1 oder 0 rausgeben, fällt mir nur so auf ca so: public void ueberpruefe(String wert) { StringTokenizer st = new StringTokenizer(wert, "/"); wert = st.nextToken(); System.out.println("Neuer Wert: " + neuerWert); if (neuerWert.equals("Test") || neuerWert.equals("DwhBasis")) { System.out.println("1"); } else { System.out.println("0"); } }[/PHP]
4. Juni 200223 j also, die bat-datei ist nicht von mir geschrieben, die habe ich so bekommen. Mir wurde nur gesagt, meinst du das geht und das bekommst du hin. Dann hab ich gesagt ich versuchs mal. OK, die erste Variable kann ich mir schenken. Bei der zweiten (rueckgabewert) dachte ich, die bräuchte ich, um den Wert an die Bat-Datei weiterzugeben. Also ich mach da dann später kein system.out.... mehr, sondern die übergabe an meine bat-datei. In der Bat-datei kommt nach dem Aufruf des Programms dann eine Überprüfung rein, ob der rueckgabewert 0 oder 1 ist und dann wird hier dementsprechend weiterverzweigt. Kann mir hier irgendjemand helfen??? Wäre echt super. Ich bräuchte des dringend. Danke & GRuß Snopsy
4. Juni 200223 j Also hab mal meinen Cheffe gefragt, mit Runtime.getRuntime().exec(String command) Könnte das gehen, findest das ganze unter java.lang.Runtime Hoffe das hilft *daumen drück*
4. Juni 200223 j Original geschrieben von snopsy System.out.println(rueckgabewert); Das geht so nicht... Der Batch job ist ein eigener Process. Für diesen Process musst du dir in Java den OutputStream holen und die Ausgaben dann über diesen zurückgeben. Das hier sollte helfen. Gruß Jaraz
5. Juni 200223 j Oder du schreibst den Rückgabe Wert in eine Datei. Diese kann die Batch Datei ja dann auslesen und mit der Variablen weiter arbeiten. Gruß Codon
5. Juni 200223 j Original geschrieben von Codon Oder du schreibst den Rückgabe Wert in eine Datei. Diese kann die Batch Datei ja dann auslesen und mit der Variablen weiter arbeiten. Wie kann ich in einer batch-Datei eine andere z.B. txt-datei auslesen? Hab da leider keine Ahnung davon!!! Danke & Gruß Snopsy
5. Juni 200223 j Du brauchst dafür gar keine Datei. Du kannst den Wert mit System.exit(WERT); zurückgeben. Der WERT steckt dann in der Umgebungsvariablen ERRORLEVEL und die kannst du dann in der Batch-Datei abfragen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.