Hi Leute,
ich habe jetzt Tage lang eine Dll speziell für Windows geschrieben, welche ich in einem kleinen java Testprogramm erfolgreiche eingebunden und getestet habe. Hierbei habe ich die Kommandozeilenaufrufe
>javac Main.java
>javah -jni Main
und schließlich
>java Main
benutzt.
Nachdem die Dll sauber funktioniert hat, wollte ich sie nun in ein richtiges Projekt in Eclipse einbinden. Zunächst mit folgendem Testcode.
Die Dll habe ich erstmal in den Ordner src gelegt und bei Properties -> Java Build Path -> Source -> Native library location diesen Pfad angegeben.
Klicke ich nun auf den "PLAY" Button für Run, erhalte ich folgende Fehlermeldung:
Also habe ich es erneut in der gleichen Ordnerstruktur mit Kommandozeilenaufrufen probiert
>javac Main.java
>javah -jni Main
und schließlich
>java Main
Dies ging wieder ohne Probleme.
java -version aus der Kommandozeile ergibt
java version 1.8.0_40-b25
Welche Einstellung habe ich bei Eclipse vergessen oder ist möglicherweise falsch? Wo finde ich diese Einstellung? Was wäre noch zu prüfen?
Vielen Dank!
ich habe jetzt Tage lang eine Dll speziell für Windows geschrieben, welche ich in einem kleinen java Testprogramm erfolgreiche eingebunden und getestet habe. Hierbei habe ich die Kommandozeilenaufrufe
>javac Main.java
>javah -jni Main
und schließlich
>java Main
benutzt.
Nachdem die Dll sauber funktioniert hat, wollte ich sie nun in ein richtiges Projekt in Eclipse einbinden. Zunächst mit folgendem Testcode.
Java:
public class Main
{
static
{
System.loadLibrary("MediabaseX");
}
private native void print();
public static void main(String[] args)
{
System.out.println("Hello World!");
new Main().print();
}
}
Die Dll habe ich erstmal in den Ordner src gelegt und bei Properties -> Java Build Path -> Source -> Native library location diesen Pfad angegeben.
Klicke ich nun auf den "PLAY" Button für Run, erhalte ich folgende Fehlermeldung:
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Dropbox\Projekte\Java\MediabaseDllTest\src\MediabaseX.dll: %1 ist keine zulässige Win32-Anwendung
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
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 Main.<clinit>(Main.java:6)
Also habe ich es erneut in der gleichen Ordnerstruktur mit Kommandozeilenaufrufen probiert
>javac Main.java
>javah -jni Main
und schließlich
>java Main
Dies ging wieder ohne Probleme.
java -version aus der Kommandozeile ergibt
java version 1.8.0_40-b25
Welche Einstellung habe ich bei Eclipse vergessen oder ist möglicherweise falsch? Wo finde ich diese Einstellung? Was wäre noch zu prüfen?
Vielen Dank!