Estoy creando una herramienta que escribirá archivos .java, y luego (con suerte) compilará esos archivos en archivos .class. Todo en un proceso, el usuario selecciona un directorio de archivos donde se escriben múltiples archivos .java. Ahora quiero que el programa compile estos archivos Java.Compilación de archivos .java externos desde Java
12
A
Respuesta
14
JavaCompiler
es tu amigo. Consulte la documentación here
Y aquí un ejemplo de cómo se puede utilizar la API de compilador
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList("YouFileToCompile.java"));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null,
null, compilationUnits);
boolean success = task.call();
fileManager.close();
4
El JavaCompiler
será null
si el código se ejecuta desde un JRE. Necesita un JDK, que incluye el tools.jar
.
Cuestiones relacionadas
- 1. importando archivos jar externos
- 2. Compilación de Java 7 a Java 6
- 3. compilación en memoria de Java
- 4. CXF java2ws: cómo incluir archivos xsd externos?
- 5. compilación del programa java
- 6. Edificio vs compilación (Java)
- 7. Ruta de compilación de Java
- 8. compilación Java de un archivo .java sin una clase pública
- 9. ¿Por qué Java genera varios archivos .class en la compilación?
- 10. Dónde almacenar archivos DLL externos?
- 11. ¿La compilación para Java 1.5 en Java 1.7 aún funciona?
- 12. Biblioteca de compilación para Scala y Java
- 13. Yii - Archivos JS externos Incluya, registerScriptFile y publique
- 14. En Linux, ¿cómo ejecutar el archivo jar de Java con archivos jar externos?
- 15. ¿Genera archivos java JNLP?
- 16. Trayectorias relativas de archivos Java
- 17. Bloqueo de archivos Java
- 18. Implementación de archivos Java
- 19. Uso de Java para descargar archivos desde una URL HTTPS
- 20. Cómo actualizar los archivos Jars externos en el proyecto Eclipse (Java)?
- 21. genéricos de Java error de compilación
- 22. Ejecutar JSP directamente desde Java
- 23. Compilación de varias clases (consola) en Java
- 24. ¿Cómo incluir los archivos jar externos en el proceso de compilación de maven jar?
- 25. Llamar a Java desde Python
- 26. ¿Cómo ocurre exactamente la compilación java?
- 27. java: ¿escribir archivos grandes?
- 28. Descargando archivos con Java
- 29. Acceso desde servlet Java
- 30. Ejecutar hormiga desde Java
yo probamos este, y sustituyó a la "YouFileToCompile.java" con una ruta absoluta ahora consigo una NullPointerException en: StandardJavaFileManager administrador de archivos = compiler.getStandardFileManager (diagnóstico, null, null); (problema?) –
Parece que la variable 'compiler' es' null'. Asegúrate de tener una instalación correcta de Java. Mira esto para ayuda http://www.java.net/node/688208 – GETah
Tiene que ser un archivo .java? Si tengo un código en un archivo .txt, ¿seguirá funcionando? – JD9999