Servus zusammen,
als kleine Fingerübung wollte ich ein Programm schreiben, welches Javaklassen zur Laufzeit nachladen kann.
Dazu starte ich javac ("C:\Program Files\Java\jdk1.8.0_05\bin\javac.exe") über Runtime.getRuntime().exec() bzw. über den ProcessBuilder (gleiches Ergebnis soweit). Das funktioniert auch wunderbar - jedenfalls innerhalb der IDE.
Wenn ich daraus jetzt aber eine *.jar mache, wollen beide Möglichkeiten nicht mehr funktionieren - ich erhalte in exec() eine Exception mit der meldung "Das System kann die angegebene Datei nicht finden".
Ich hatte die Vermutung, dass es an dem Leerzeichen im Pfad bei "Program Files" liegt. Deshalb meine Versuche bisher:
- Gesamten Pfad Quoten
- Nur Program Files quoten
- Program Files durch PROGRA~1 ersetzen
Es funktioniert weiterhin perfekt in der IDE, aber nicht, wenn ich die jar ausführe
Habt ihr zufällig Ideen dazu?
Schöne Grüße,
Cymatoxa
als kleine Fingerübung wollte ich ein Programm schreiben, welches Javaklassen zur Laufzeit nachladen kann.
Dazu starte ich javac ("C:\Program Files\Java\jdk1.8.0_05\bin\javac.exe") über Runtime.getRuntime().exec() bzw. über den ProcessBuilder (gleiches Ergebnis soweit). Das funktioniert auch wunderbar - jedenfalls innerhalb der IDE.
Wenn ich daraus jetzt aber eine *.jar mache, wollen beide Möglichkeiten nicht mehr funktionieren - ich erhalte in exec() eine Exception mit der meldung "Das System kann die angegebene Datei nicht finden".
Ich hatte die Vermutung, dass es an dem Leerzeichen im Pfad bei "Program Files" liegt. Deshalb meine Versuche bisher:
- Gesamten Pfad Quoten
- Nur Program Files quoten
- Program Files durch PROGRA~1 ersetzen
Es funktioniert weiterhin perfekt in der IDE, aber nicht, wenn ich die jar ausführe

Schöne Grüße,
Cymatoxa