java - studio - ejecutar c++ android
CMake para compilar el código java (1)
¿Es posible usar CMake para compilar y ejecutar código Java?
Desde la línea de comandos los comandos que escribo en la terminal son:
javac -classpath theClasspath mainClass.java
java -classpath theClasspath mainClass
Si es así, ¿podría darme una idea de cómo se puede lograr esto?
PS: No quiero generar un archivo jar; Solo para compilar la clase java y si es posible ejecutarlo.
Gracias.
Actualización : He cambiado el comando. No sé por qué no se mostró el texto adicional. Puede ser porque usé "<" y ">".
CMake tiene un soporte algo limitado para compilar código Java y ejecutar archivos de clase Java.
El módulo estándar FindJava se puede usar para encontrar un JDK instalado en la máquina local. El módulo estándar UseJava proporciona algunas funciones para Java. Entre ellas se encuentra una función add_jar
para compilar archivos fuente de Java en un archivo jar.
Aquí hay un pequeño ejemplo que muestra cómo usar add_jar
. Dado el archivo fuente de ejemplo de Java HelloWorld.java
:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
El siguiente archivo de lista de CMake compilará HelloWorld.java
en un archivo jar HelloWorld.jar
y también agregará una prueba de CMake que ejecuta el jar con la JVM:
cmake_minimum_required (VERSION 2.8)
find_package(Java REQUIRED)
include(UseJava)
enable_testing()
project (HelloWorld NONE)
set(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.6" "-target" "1.6")
add_jar(HelloWorld HelloWorld.java)
get_target_property(_jarFile HelloWorld JAR_FILE)
get_target_property(_classDir HelloWorld CLASSDIR)
message(STATUS "Jar file ${_jarFile}")
message(STATUS "Class compiled to ${_classDir}")
add_test(NAME TestHelloWorld COMMAND ${Java_JAVA_EXECUTABLE} -cp ${_jarFile} HelloWorld)
La variable CMake CMAKE_JAVA_COMPILE_FLAGS
se puede usar para especificar CMAKE_JAVA_COMPILE_FLAGS
compilación. Como efecto secundario, el comando add_jar
establecerá las propiedades de destino JAR_FILE
y CLASSDIR
que se pueden usar para obtener la ruta al archivo jar generado y al directorio de archivos de clase compilados, respectivamente.