Articulo de referencia

GIWS (software)

GIWS es un generador de envoltorios diseñado para simplificar la llamada a Java desde C o C++ mediante la generación automática del código JNI necesario . [ 1 ] GIWS se distribu...

GIWS es un generador de envoltorios diseñado para simplificar la llamada a Java desde C o C++ mediante la generación automática del código JNI necesario . [ 1 ]

GIWS se distribuye bajo la licencia CeCILL .

Ejemplo

La siguiente clase Java realiza algunos cálculos sencillos.

paquete basic_example ; import java.lang.Math ;public class MyComplexClass { public MyComplexClass () { // el constructor } public long myVeryComplexComputation ( double a , double b ) { return Math . round ( Math . cos ( a ) + Math . sin ( b ) * 9 ); } }

GIWS ofrece la capacidad de llamarlo desde C++.

#include <iostream> #include "basic_example.hxx" #include <jni.h>JavaVM * create_vm () { JavaVM * jvm ; JNIEnv * env ; JavaVMInitArgs args ; JavaVMOption options [ 2 ]; args . version = JNI_VERSION_1_4 ; args . nOptions = 2 ; options [ 0 ]. optionString = const_cast < char *> ( "-Djava.class.path=." ); options [ 1 ]. optionString = const_cast < char *> ( "-Xcheck:jni" ); args . options = options ; args . ignoreUnrecognized = JNI_FALSE ; JNI_CreateJavaVM ( & jvm , ( void ** ) & env , & args ); return jvm ; }using namespace basic_example ; using namespace std ;int main () { JavaVM * jvm = create_vm (); MyComplexClass * testOfMyClass = new MyComplexClass ( jvm ); cout << "Mi cálculo: " << testOfMyClass- > myVeryComplexComputation ( 1.2 , 80 ) << endl ; return 0 ; }

Para generar el enlace, GIWS utiliza una declaración XML. GIWS generará el código JNI para llamar al objeto Java.

<package name= "basic_example" > <object name= "MyComplexClass" > <method name= "myVeryComplexComputation" returnType= "long" > <param type= "double" name= "a" /> <param type= "double" name= "b" /> </method> </object> </package>

Véase también

  • SWIG permite llamar a C o C++ desde lenguajes de nivel superior.

Referencias

  1. "giws" . GitLab . Consultado el 13 de noviembre de 2025 .
  • Sitio web oficial