Hallo Ich habe keine Lösung gefunden, wie 64-Bit-DLL zu erstellen. Und verwenden Sie seine nativen C++ - Methoden. Ich benutze Java-Code metodynatywne.java:Wie 64-Bit-DLL zu generieren, die GCC-Compiler oder andere. Kann nicht laden IA 32-Bit-DLL auf einer AMD 64-Bit-Plattform
class metodynatywne {
static {
System.loadLibrary("metodynatywne");
}
native public void sayHello();
public static void main (String argv[])
{
new metodynatywne().sayHello();
} }
dann erzeugt metodynatywne.h mit javah -jni metodynatywne
I metodynatywne.cpp Code geschrieben:
#include <jni.h>
#include <iostream>
#include "metodynatywne.h"
using namespace std;
JNIEXPORT void JNICALL
Java_metodynatywne_sayHello(JNIEnv * env, jobject self)
{
cout << "Hello World!" << endl;
}
ich gcc ussed meiner zu erstellen dll mit Befehlen:
c:\>c++ -I c:\java7\include -I c:\java7\include\win32 -c metodynatywne.cpp
und
c:\>c++ -shared metodynatywne.o -o metodynatywne.dll
und was, was ich bekomme ist Fehlermeldung:
c:\>java metodynatywne
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Programowanie\UJ\Semestr2\ZPG\PerfCount\cwiczenie\metodynatywne.dll: Can't lo
ad IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at metodynatywne.<clinit>(metodynatywne.java:4)
ich Java 1.4 32-Bit-Compiler javac und Java7 x64-Compiler verwenden beide metods gab mir den gleichen Fehler. Wie kann ich damit umgehen? Verwenden Sie einen anderen C++ - Compiler, wenn ja, wie erzwingt, dass dieser Compiler von meiner Java-DLL-Datei verwendet werden kann. Ich arbeite unter Windows 7 64 Bit.
Wie kann ich aus der cpp-Datei eine 64-Bit-DLL (mit gcc) machen? Oder andere Comand Line Compiler?
Vielen Dank für Kommentare und Hilfe zur Verfügung gestellt.
Ich habe das gleiche Problem, haben Sie zufällig eine Lösung gefunden? –