Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
habe ein kleines Problem und hier im Forum beim Suchen auch keine Antwort darauf gefunden.
Wenn ich den Java-Compiler (javac) in der Konsole aufrufe funktioniert dies ja so:
javac Dateiname.java
Wenn ich den Compiler nun aber in einer selbstgeschrieben Java-Datei aufrufen will funktioniert dies nicht.
Kann mir keiner weiterhelfen? Ich find einfach nix...mir wird das Suchen in Google so allmälich auch zu langweilig.
Da steht immer nur, wie man den Compiler über die Konsole aufrufen kann, aber ich find nicht wie man den unter Java aus einer selbstgeschrieben Datei aufrufen kann.
bekommst du hier irgendeine Ausgabe oder kompilierte Datei?
bei richtig geschriebenen Namen wird bei mir kompiliert ohne jede Meldung,
bei falschen Dateinamen kommt
> error: error: cannot read: C:/Temp/Tet.java
> error: 1 error
wie man es von der Konsole kennt
Code:
public class Test
{
public static void main(String[] args)
throws Exception
{
Process p = Runtime.getRuntime().exec("cmd /c javac C:/Temp/Tet.java");
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = b.readLine()) != null)
{
System.out.println("output: " + line);
}
BufferedReader b2 = new BufferedReader(new InputStreamReader(p.getErrorStream()));
while ((line = b2.readLine()) != null)
{
System.out.println("error: " + line);
}
System.out.println("end");
}
}
Hab den von SlaterB vorgeschlagenen Testcode mal ausprobiert, funktioniert aber auch nicht.
Wenn ich allerdings
Process p = Runtime.getRuntime().exec("javac Hallo.java");
anstatt
Process p = Runtime.getRuntime().exec("cmd /c javac C:/Hallo.java");
in den Code schreibe bekomm ich die Fehlermeldung das javac die Datei Hallo.java nicht finden kann.
Wenn ich
Process p = Runtime.getRuntime().exec("javac c:\\Hallo.java");
oder
Process p = Runtime.getRuntime().exec("javac c:/Hallo.java");
eingebe lädt das Programm immer weiter ohne was zu tun. Sprich ohne das ich eine Ausgabe bekomme.
Wenn ich das cmd verwende, lädt er auch immer weiter ohne eine Ausgabe zu bringen oder bringt mir die Fehlermeldung, dass er javac nicht finden kann.
Ich glaub es geht los! VOR ÜBER 2 STUNDEN? Das ist ja n richtiger Skandal! Hier im Forum sitzen ja nur Arbeitslose Freaks, die sich auf alle möglichen Probleme stürzen um den Leuten kostenlos und freiwillig zu helfen - entweder weil es sie befriedigt, oder weil sie hoffen evtl. dadurch einen Job zu bekommen! WIR HABEN JA SONST NICHTS BESSERES ZU TUN!
man man man ... bezahl jeden von uns 20 Euro die Stunde, dann bekommst du auch kompetente Hilfe innerhalb weniger Minuten! Ansonsten muss man sich halt mal ein paar Stunden/Tage/Wochen gedulden, vorallem wenn der Threadsteller schon die korrekte Antwort bekommen hat, aber zu ****** ist, diese Umzusetzen!
Ich habe die Datei "DoCompile.java" unter "C:\" liegen. Wenn ich folgende Klasse ausführe
Code:
public class Test {
public static void main(String[] args) throws Exception {
Runtime.getRuntime().exec("cmd /c javac C:/DoCompile.java");
}
}
Wird diese "DoCompile.java"-Datei zu einer .class Datei kompiliert.
Damit das funktioniert, muss natürlich javac in der PATH-Variable eingetragen, und vorallem das JDK auf dem Rechner installiert sein.
Ich wollte sicherlich nicht unverschämt werden mit dem "Vor über 2 Stunden".
Tut mir leid, das sich das etwas hart angehört hat.
So habe das Programm von SlaterB bei mir zum laufen gebracht mit dieser Zeile:
Code:
Process p = Runtime.getRuntime().exec("c:/jdk1.6.0_01/bin/javac.exe c:/Hallo.java");
Mit dem cmd funktioniert das nicht, weiß auch nicht warum.
Path-Variable war das erste was ich gemacht habe, als das nicht so funktionierte wie es soll...das JDK ist ebenfalls installiert, sonst hätte ich ja nicht in der Konsole javac aufrufen können. Ich denke der Fehler bei mir liegt in der Einstellung der Konsole, aber da es auch so jetzt funktioniert ist das nicht sowichtig.