Article View: es.comp.lenguajes.java
Article #27520Re: Insertar c�digo C/C++
From: Christian Sifaqui
Date: Tue, 08 Sep 1998 00:00
Date: Tue, 08 Sep 1998 00:00
65 lines
2427 bytes
2427 bytes
> �Alguien me puede explicar o decirme donde puedo encontrar
> informaci�n detallada sobre c�mo insertar c�digo de C/C++ en un
> programa Java?
A ver, a ver, para eso debes usar lo que se llama JNI, te describo
un ejemplo bastante sencillo: Se program� una funci�n en C++ para
calcular el factorial de un n�mero (x!) (el programa lo tengo escrito
en alem�n, as� que la funci�n se llama Fakult�t=Factorial).
Bueno, el programa "pot.cpp" que calcula el factorial
en C++ es as�:
--------------------------------------------------
#include <stdio.h>
#include <jni.h>
#include "Fakultaet.h"
JNIEXPORT jint JNICALL Java_Fakultaet_pot(JNIEnv *env,
jobject obj, jint i){
jint p = 1;
for(int k=1;k<=i;k++) p = p * k;
return p;
}
--------------------------------------------------
El programa "Fakultaet.java" en Java que usa la funci�n es:
--------------------------------------------------
public class Fakultaet {
private native int pot(int i);
public static void main(String args[]) {
Fakultaet p = new Fakultaet();
int i = p.pot(5);
System.out.println(i);
}
static {
System.loadLibrary("Fakultaet");
}
}
--------------------------------------------------
y se compila el programa en C++ con (hecho para solaris):
g++ -G -I/jdk_path/include -I/jdk_path/include/solaris pot.cpp -o
libFakultaet.so
luego debes asignar la variable LD_LIBRARY_PATH para que indique
al archivo "libxx.so"
y luego ejecutar "java Fakultaet"
Saludos
> "Dios mio, hemos caido en manos de ingenieros"
Respuesta: "�Qu� bueno, por fin dejaremos de teorizar!"
--
Christian Sifaqui
ZGDV e.V.
Rundeturmstrasse 6
64283 Darmstadt
Germany
mailto:sifaqui@igd.fhg.de
Phone: 49 6151 155609
Fax: 49 6151 155450
http://www.zgdv.de/~sifaqui
Technical Details
Message-ID:
<35F4F7EB.A2872880@igd.fhg.de>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<Pine.LNX.3.95.980902105855.24193A-100000@aumasrv1.fmatem.uv.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,549070a97194c36c X-Google-Attributes: gid1116f3,public From: Christian Sifaqui <sifaqui@igd.fhg.de> Subject: Re: Insertar c�digo C/C++ Date: 1998/09/08 Message-ID: <35F4F7EB.A2872880@igd.fhg.de> X-Deja-AN: 388975886 Content-Transfer-Encoding: 8bit References: <Pine.LNX.3.95.980902105855.24193A-100000@aumasrv1.fmatem.uv.es> Content-Type: text/plain; charset=iso-8859-1 Organization: http://www.zgdv.de Mime-Version: 1.0 Newsgroups: es.comp.lenguajes.java