In meinem aktuellen Projekt muss ich Java-Code zur Laufzeit kompilieren (im Hintergrund, um Eingaben des Benutzers zu verarbeiten). Dies funktioniert gut mit tools.jar im Klassenpfad. Nicht alle Benutzer meines Programms haben jedoch JDK auf ihrem System installiert. Einige von ihnen haben nur JRE und in diesem Fall ist kein Java-Compiler zur Laufzeit verfügbar. Ich kann dieses Problem lösen, indem ich tools.jar von Sun als Teil meines Tools einfüge.Java-Compiler zur Laufzeit
Aber tools.jar ist sehr groß (> 12 MB). Das Problem ist, dass ich die große JAR-Datei einschließen muss, obwohl ich nur an einem kleinen Bruchteil der Funktionalität interessiert bin, die von diesem Glas bereitgestellt wird.
Ist es möglich, die tools.jar Datei zu brechen, so dass ich eine kleine Untergruppe von Klassen, die Java-Code erforderlich sind nur für die Zusammenstellung?
Ist das illegal?
Vielen Dank.
Dies ist eine Option, die ich in Betracht gezogen habe. Ja, es ist möglich, den Eclipse-Compiler ohne Eclipse zu verwenden. Ich hatte einige Probleme mit der Verwendung es wegen seiner Thread-Caching-Verhalten, das heißt, es ist nicht möglich, mehr als eine Instanz des Compilers aus einem Thread zu erhalten. In meinem Verwendungsszenario habe ich Schwierigkeiten, die Diagnosemeldungen vom Compiler zu verfolgen, weil ich jedes Mal eine neue Instanz des Compilers benötige. – Dipmedeep