Text in Programm eingeben
EneR
- java
Hallo,
die überschrift ist vielleicht etwas irreführend. Entschuldigung, aber ich habe keine passendere gefunden. Was ich erreichen möchte ist, das ich in einem Programm etwas über ein Programm eingeben möchte, ich kann davon ausgehen, dass immer etwas eingegeben werden kann. Das betreffende Programm ist jedoch in einer anderen Sprache geschrieben, meins soll in java sein. Das betreffende Programm wird in der Konsole ausgeführt.
Immer noch nicht genau genug? Dann Frag einfach nach!
Danke schonmal im Vorraus!!!
Hallo EneR,
Immer noch nicht genau genug? Dann Frag einfach nach!
Das Programm muss dies in irgend einer Art implementiert haben. In Java zB wird dies durch das Array args[] realisiert:
public class MyClass {
public static void main(String[] args) {
for (int i=0; i<args.length; i++)
System.out.print(args[i]+" ");
}
}
Hier werden alle Argumente ausgegeben, die beim Aufruf übergeben wurden:
java MyClass Argument1 Argument2
Dieses Array ist in Java immer in der Main-Methode vorhanden; ob es jedoch auch abgefragt wird, ist nicht gewiss.
Java kann andere Programme über exec() starten:
try {
Runtime.getRuntime().exec("pfad/zum/prog parameter1");
} catch (Exception e) {
System.err.println(e.toString());
}
Hoffe das hilft Dir.
Mit freundlichem Gruß
Micha
Hallo,
es kann sein, dass Du schon den richtigen Asatz hattest ich kann ihn aber nicht umsetzen...
Was ich meine, ist es gibt irgendein Programm (2), was in der Konsole Ausgeführt wird, und ich möchte z.b. Alle 5 min den Befehl "save all" eingeben. Das (2) Programm, ist immer "aufnahmebereit" für eingaben.
Hallo EneR,
Was ich meine, ist es gibt irgendein Programm (2), was in der Konsole Ausgeführt wird,
Die Konsole (cmd?) spielt keine Rolle. Du rufst das Tool über exec auf und übergibst den String "save all" als Parameter - wie gezeigt.
Mit freundlichem Gruß
Micha
Hallo EneR,
Lies mal die Doku zu Runtime.exec.
Da bekommst Du eine Instanz von Process als Rückgabewert. Dort kannst Du dann getInputStream()/getOutputStream() aufrufen, um mit dem Prozess per STDIN/STDOUT zu kommunizieren.
Das willst Du doch machen oder?
Grüße
Daniel