Foros del Web » Programación para mayores de 30 ;) » Java »

JNI usando package con netbeans en linux

Estas en el tema de JNI usando package con netbeans en linux en el foro de Java en Foros del Web. Hola chico, k tal?? me encuentro con el problema de implementar las funciones nativas en el netbeans usando package. he implementado el metodo nativo en ...
  #1 (permalink)  
Antiguo 22/04/2010, 13:24
 
Fecha de Ingreso: marzo-2010
Mensajes: 2
Antigüedad: 14 años, 1 mes
Puntos: 0
JNI usando package con netbeans en linux

Hola chico, k tal??
me encuentro con el problema de implementar las funciones nativas en el netbeans usando package.

he implementado el metodo nativo en el netbeans pero sin uso de los package, y a sido todo un exito, pero al momento de incluir mi programa java en el package, genero mi clase desde una terminal, despues genero mi libreria .h donde tengo que hacer referencia de mi package Ejemplo:

1er paso:
Tengo mi proyecto "Cliente", donde creo un package "Externo", ingreso mi programa java "usoJava.java", ejecuto mi programa desde una terminal:

javac usoJava.java

me genera mi usoJava.class

2do. paso:

despues genero mi .h

javah -jni usoJava

el hacer esto me detecta un error. El error se me genera porque el codigo de mi programa java, tiene "package Externo", entonces me salgo de esa carpeta y me posiciono en la capeta src, donde se encuentran todas los package, y desde mi terminal tecleo:

jni -jni Cliente.usoJava

y se me genera mi .h pero afuera de mi package "Externo",. Guardo mi programa .C en esa carpeta que es src, y creo mi libreria .so.

Me posiciono nuevamente en mi carpeta "Externo"para ejecutar mi programa java, porque se supone que todo ya esta creado y me sale error:

Exception in thread "main" java.lang.NoClassDefFoundError: LlamarFacedetect (wrong name: usopackage/LlamarFacedetect)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java :638)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:143)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:281)
at java.net.URLClassLoader.access$000(URLClassLoader. java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java: 216)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:209)
at java.lang.ClassLoader.loadClass(ClassLoader.java:3 24)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:2 69)
at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:337)
Error: Could not find the main class.
Error: A JNI error has occurred, please check your installation and try again

mi programa java es :



package usopackage;

/**
*
* @author gsanchez
*/
public class LlamarFacedetect {

public native void called();

static { System.load("/home/gsanchez/NetBeansProjects/usoPackage/src/libfacedetect.so"); }

public void llamar(){
called();
}

public static void main(String[] args){
LlamarFacedetect objeto = new LlamarFacedetect();
objeto.llamar();
}
}


el programa .h que se genera:

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class usopackage_LlamarFacedetect */

#ifndef _Included_usopackage_LlamarFacedetect
#define _Included_usopackage_LlamarFacedetect
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: usopackage_LlamarFacedetect
* Method: called
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_usopackage_LlamarFacedetect_called
(JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

y mi programa C es:

#include <jni.h>
#include "usopackage_LlamarFacedetect.h"
#include <stdlib.h>
#include <stdio.h>

JNIEXPORT void JNICALL
Java_JNI_LlamarFacedetect_called(JNIEnv *env, jobject obj)
{
system("/home/gsanchez/NetBeansProjects/Cliente/src/Cliente/facedetect");
return;
}


Por favor , agradeceria mucho su ayuda, y de sus conocimientos, Como hacerlo dentro de un package!!! GRACIAS!!
  #2 (permalink)  
Antiguo 02/05/2012, 07:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 75
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: JNI usando package con netbeans en linux

Estoy en la misma tesitura que tú, ¿conseguiste solucionarlo?

Etiquetas: linux, netbeans
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:48.