2012-03-30 14 views
18

Estoy usando Eclipse para generar un archivo de encabezado JNI. Busqué en program files\java\jre6\bin y encontré muchos archivos .exe y .dll, pero no pude encontrar el comando javah que se encontraba en la documentación para usar JNI para crear enlaces a las bibliotecas C.
¿Alguna ayuda?Cómo generar el archivo de encabezado JNI en Eclipse

+0

mira esto : http: // stackoverflow.com/questions/10483959/javah-error-android-app-activity-not-found/25989225 # 25989225 –

Respuesta

32

Utilice el siguiente panel para definir una nueva herramienta externa para javah.exe.

Señale "Ubicación" en la herramienta javah.exe.

Set "directorio de trabajo" para

${workspace_loc:/${project_name}/bin} 

Set "Argumentos" a:

-classpath ${project_classpath} -v -d ${workspace_loc:/${project_name}/src} ${java_type_name} 

enter image description here

para ejecutar la herramienta, resalte el archivo fuente de Java en el explorador de paquetes y correr la herramienta.

enter image description here

presione F5 para actualizar º proyecto para ver el archivo recién generado.

+1

puede explicar los argumentos ... que serán realmente útiles ... gracias – aProgrammer

+1

Haga clic en "Variables ..." botón. La descripción de cada uno se encuentra allí. – Java42

+0

¡woo hoo! Trabajo asombroso. –

2

Sólo un poco de información ...

Por desgracia, la solución anterior no funcionó para mí, pero la solución en este hilo hizo:

Using javah -jni with an Eclipse project structure

Con los argumentos antes mencionados, tengo :

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name:path/to/project

descubrí, que el problema era un carácter de espacio en el camino a mi proyecto Envolver las rutas entre comillas ayudó a la solución anterior.

0

Ubicación

// ruta javah.exe

C: \ Archivos de programa \ Java \ jdk1.7.0_79 \ bin \ javah.exe

directorio de trabajo

$ {workspace_loc:/$ {project_name}/bin}

Argumentos

-classpath $ {} project_classpath -v -d $ {workspace_loc:/$ {} project_name/JNI} $ {} java_type_name

de clase y ejecutar herramientas de Java abierta

Cuestiones relacionadas