Java Compiler einbinden
-
oder ganz einfach..
javac mit textfile.java aufrufen und ausgabe in datei speichern und dann datei lesen und ausgeben..
javac textfile.java>ausgabe.txt
vielleicht klappts so.
-
elise schrieb:
oder ganz einfach..
javac mit textfile.java aufrufen und ausgabe in datei speichern und dann datei lesen und ausgeben..
javac textfile.java>ausgabe.txt
vielleicht klappts so.
Und wie kann ich das von meinem java Programm aus aufrufen?
-
Runtime.getRuntim().exec("bla");
-
1. Auf Java 6 upgraden, falls das noch nicht genutzt wird.
2. Java 6 bietet eine neue "Compiler API". Damit geht das.
-
kennerderzeit schrieb:
Runtime.getRuntim().exec("bla");
Leider funktioniert hiermit das Umleiten der Ausgabe in eine datei nicht wenn ich folgendes schreibe. Es passiert ueberhaupt nichts.
Runtime.getRuntime().exec("javac /home/Benutzerantwort.java > /home/CompilerAusgabe.txt");
Schreibe ich nur:
Runtime.getRuntime().exec("javac /home/Benutzerantwort.java");
so wird wenigstens die classe erzeugt.
Wo liegt der Fehler ?
-
Machs halt mit der CompilerAPI von Java6
-
ganz einfach, du bist unter linux, also so:
Runtime.getRuntime().exec("javac /home/Benutzerantwort.java >& /home/CompilerAusgabe.txt");
vergiß das kaufmannsund nicht.
-
Auf die beiden Posts zur Compiler API reagiert scheinbar niemand, obwohl es imho DAS probate Mittel für das Problem ist. Schade.
-
Ne, das waere ja zu einfach. Stattdessen wird weiter an unportablen Loesungen rumgefrickelt.
-
der java compiler ist selbst in java geschrieben, es hindert dich also niemand daran einfach javac in den classpath aufzunehmen und per java aufzurufen -- sogar ohne java 1.6
-
gurkenesser schrieb:
der java compiler ist selbst in java geschrieben, es hindert dich also niemand daran einfach javac in den classpath aufzunehmen und per java aufzurufen -- sogar ohne java 1.6
Was hat das mitm classpath zu tun, warum schlaegst Du das jetzt zum dritten mal vor, und warum sollte man so'n Gefrickel machen, wenn's 'ne richtige Loesung gibt?
-
ich habe nix gegen eine richtige lösung.
ich wollte nur den anderen weg richtigstellen.so long
-
SG1 schrieb:
gurkenesser schrieb:
der java compiler ist selbst in java geschrieben, es hindert dich also niemand daran einfach javac in den classpath aufzunehmen und per java aufzurufen -- sogar ohne java 1.6
Was hat das mitm classpath zu tun
java klassen die man benutzen will sollten schon im classpath liegen...
warum schlaegst Du das jetzt zum dritten mal vor
das war mein erster post in diesem thread und auch von anderne mitgliedern wurde meine lösung noch nicht vorgeschlagen.
und warum sollte man so'n Gefrickel machen, wenn's 'ne richtige Loesung gibt?
das ist kein gefrickel, das ist der übliche weg fremde software in java zu benutzen.
du hast nich viel ahnung wovon du redest außer größe töne spucken oder?
-
CengizS schrieb:
Auf die beiden Posts zur Compiler API reagiert scheinbar niemand, obwohl es imho DAS probate Mittel für das Problem ist. Schade.
Das liegt vieleicht daran, dass java 1.6 noch recht neu und deshalb bei den gängigen Distributionen noch nicht wirklich gebräuchlich ist.
-
shlogon schrieb:
CengizS schrieb:
Auf die beiden Posts zur Compiler API reagiert scheinbar niemand, obwohl es imho DAS probate Mittel für das Problem ist. Schade.
Das liegt vieleicht daran, dass java 1.6 noch recht neu und deshalb bei den gängigen Distributionen noch nicht wirklich gebräuchlich ist.
jep.
am wochenende hab ich mirs sowieso vorgenommen, mal alles zum laufen zu bringen. mal sehen, ob der weg steinig ist.
-
CengizS schrieb:
Auf die beiden Posts zur Compiler API reagiert scheinbar niemand, obwohl es imho DAS probate Mittel für das Problem ist. Schade.
Das liegt daran, dass ich die Aufgabe hier auf nem Computer machen muss, auf dem nur java 1.4 installiert ist und ich java 1.6 nicht installieren darf.
Aber die "Frickelmethode" funktioniert jetzt mit Runtime.getRuntime().exec(blablabla..
Danke an Alle die geholfen haben !
-
Gibts Runtime.getRuntime().exec auch als minimiert ausführen?
-
Naja, zumindest ich habe deine Info wohlwollend zur Kenntnis genommen.
Nur schade, das ich genau das im Moment gar nicht brauche!