Hallo!!
Ich bin grad dabei mir die Grundlagen von JNI anzueignen!!
Ich habe soweit den Java-Code in HelloWorld.java geschrieben, diesen compiliert, daraus die HelloWorld.h generiert und anschließend den C-Code in HelloWorld.c geschrieben.
Jetzt möchte ich die dll erzeugen, die ich dann ausführen kann!
dies versuche ich in der Kommandozeile mit:
-Ic:\j2sdk1.4.2_06\include -Ic:\j2sdk1.4.2_06\include\win32 -LD HelloWorld.c -FeHelloWorld.dll
Dabei bekomme ich den Fehler: "The filename, directory name, or volume label syntax is incorrect."
Mein C-Code in HelloWorld.c sieht folgenderweise aus:
HelloWorld.h
Könnte es sein, dass das Problem darin liegt, dass ich in Java eine Package-Struktur habe, die im Methodennamen in C fehlt?
Oder spielt der Ordner, in der die Kommandozeile beim Ausführen steht eine Rolle? Ich habe sie im Ordner der Dateien stehen, nicht auf Workspace-Ebene...
Oder gibt es bessere/andere Möglichkeiten in WinXP dlls aus meinen Dateien zu erzeugen??
Ich habe auch das Visio-Studio, dort aber leider bis jetzt nur Möglichkeiten gefunden C++-Code zu compilieren. Über Tipps wie ich damit mit dem obenstehenden C-Code eine dll generieren kann, wäre ich auch sehr dankbar!
Ich muss dazu sagen, dass ich von C/C++ leider nicht wirklich Ahnung habe!
Ich hoffe, ihr könnt mir weiterhelfen, denn ich steh grad ziemlich auf dem Schlauch!!
Viele Grüße,
Hanna
Ich bin grad dabei mir die Grundlagen von JNI anzueignen!!
Ich habe soweit den Java-Code in HelloWorld.java geschrieben, diesen compiliert, daraus die HelloWorld.h generiert und anschließend den C-Code in HelloWorld.c geschrieben.
Jetzt möchte ich die dll erzeugen, die ich dann ausführen kann!
dies versuche ich in der Kommandozeile mit:
-Ic:\j2sdk1.4.2_06\include -Ic:\j2sdk1.4.2_06\include\win32 -LD HelloWorld.c -FeHelloWorld.dll
Dabei bekomme ich den Fehler: "The filename, directory name, or volume label syntax is incorrect."
Mein C-Code in HelloWorld.c sieht folgenderweise aus:
Code:
#include <jni.h>
#include <stdio.h>
#include "HelloWorld.h"
JNIEXPORT void JNICALL
Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}
HelloWorld.h
Code:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloWorld
* Method: print
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloWorld_print
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
Könnte es sein, dass das Problem darin liegt, dass ich in Java eine Package-Struktur habe, die im Methodennamen in C fehlt?
Oder spielt der Ordner, in der die Kommandozeile beim Ausführen steht eine Rolle? Ich habe sie im Ordner der Dateien stehen, nicht auf Workspace-Ebene...
Oder gibt es bessere/andere Möglichkeiten in WinXP dlls aus meinen Dateien zu erzeugen??
Ich habe auch das Visio-Studio, dort aber leider bis jetzt nur Möglichkeiten gefunden C++-Code zu compilieren. Über Tipps wie ich damit mit dem obenstehenden C-Code eine dll generieren kann, wäre ich auch sehr dankbar!
Ich muss dazu sagen, dass ich von C/C++ leider nicht wirklich Ahnung habe!
Ich hoffe, ihr könnt mir weiterhelfen, denn ich steh grad ziemlich auf dem Schlauch!!
Viele Grüße,
Hanna