Hi @ All!
Habe folgenden Code, der soll mir die Java-Datei ausführen, dieich in dem String[] habe. Das kompilieren mittels javac klappt imho problemlos (die class-Datei wird erstellt), nur das Starten der Datei tut nicht.
String[] test = new String[]
{
"public class test",
"{",
" public static void main(String[] args)",
" {",
" System.out.println(\"Hallo\");",
" }",
"}"
};
File.WriteAllLines("C:\\Temp\\test.java", test);
ProcessStartInfo psi = new ProcessStartInfo("C:\\Programme\\Java\\AppServer\\jdk\\bin\\javac.exe", "C:\\Temp\\test.java -O -deprecation -g");
psi.CreateNoWindow = true;
Process p = Process.Start(psi);
psi = new ProcessStartInfo("java", "test");
psi.WorkingDirectory = "C:\\Temp\\";
Process.Start(psi);
Hat jemand hier einen Plan, warum?
Bin für jede Hilfe dankbar.
Gruß, Christian.
Hallo Schamese,
kann sein, dass du auch bei "java.exe" den vollen Pfad angeben musst.
herbivore
Habe jetzt Folgendes, doch das tut auch nicht.
psi = new ProcessStartInfo("C:\\Programme\\Java\\AppServer\\jdk\\bin\\java", "test");
psi.WorkingDirectory = "C:\\Temp\\";
Process.Start(psi);
Lassen sich .class-Dateien ausführen?
Müssen die nicht erst noch in ein .jar-archiv gepackt werden?
Dumme Frage...Woher weisst Du denn dass es nicht funktioniert hat? Gibts eine Exception?
Schreib doch mal in eine Textdatei.
Ich habe das ganze nach dieser Anleitung gemacht und es funzt.
Also habe ich mir gedacht, um eine Javadatei per Konsole zu kompilieren und auszuführen muss man sie erst mit javac kompilieren und dann kann man sie mit java ausführen.
Und das habe ich dann versucht, in einer Windows-Anwendeung umzusetzen.
Gruß, Christian.
Das stimmt ja auch...nur wird kein Command-Window angezeigt und somit ist dein System.out.println wahrscheinlich nutzlos.
Hallo Schamese,
"cmd", "/k java test"
herbivore
thx, herbivore. so funktionierts.
Aber wie kann ich es anstellen, dass sich die Console automatisch nach Ablauf des JavaCodes beendet?
Muss ich mir dazu ne batch basteln?
Hallo Schamese,
"cmd", "/c java test"
Aber dann siehst du ja wieder nichts. 🙂
herbivore
doof.
Aber danke trotzdem 🙂