Eine DLL Datei in java.library.path einbinden

Steven19

Mitglied
Guten Morgen

Ich habe ein kleines Problem. Ich möchte eine DLL Datei von meiner Schrittmotorenkarte in mein Java programm einbinden.
Das habe ich mit dem Befehl: System.loadLibrary("emis_pbl.dll"); gemacht.

Jetzt muss ich sie noch in meine Library einfügen aber das ist nicht so einfach weil es keine JRE Datei ist.
Ich habe schon was gelesen das man was mit JNI machen muss aber das hat mir auch nicht viel weiter geholfen.

Den Link von der JNI Seite habe ich schon aber ich werd daraus einfach nicht schlau.

Ich habe die DLL Datei mal in den Anhang gemacht.



Gruß Steffen
 

Anhänge

  • emis_pbl.rar
    168,1 KB · Aufrufe: 78
Hi Steffen
schau dir am besten mal JNA(https://jna.dev.java.net/) an. Diese API bietet einen sehr einfachen Zugriff auf native Bibliotheken wie DLLs unter Windows. Was du aber trotzdem brauchst, sind die Header-Dateien dieser Bibliothek, denn sie legen die Namen fest, mit denen auch JNA auf die Befehle der DLL zugreift.
 
Morgen genodeftest,

Danke für deine schnelle Antwort. Aber im großen und ganzen bringt das mich nicht wirklich weiter.
Hat den keiner eine Anleitung wie man eine DLL in Java einbinden kann****

Gruß Steffen
 
Ja ich muss die DLL irgendwie in die Library einbinden.

Meine Code sieht so aus:

public static native boolean Ini_WinIo_QueryPerformance();
static
{
System.loadLibrary("emis_pbl.dll");
}
public static native boolean Shutdown_WinIo();
public static native boolean Ini_ParalleleSchnittstelle(short Nr);
public static native boolean Ini_Schrittmodus_StromabsenkungAuf(short Schrittmodus, short Stromabsenkung);
public static native boolean Vecout(int xStep, int yStep, int zStep, int Startfreq, int Arbeitsfreq, int Rampenlaenge);
public static native boolean Referenzfahrt(int i, int ROffset, int refSpeedStart2, int refSpeedWork2, int refRamp2);
public static native boolean Stromabsenkung();
public static native boolean SetzeAusgang(short modus);
public static native boolean SetzeE1Verknuepfung(boolean bAktion);
public static native boolean SetData(short pin, short modus);
public static native boolean GetData(short pin);
public static boolean erg;

Wenn ich das Programm so laufen lass dann kommt eben der Fehler das die emis_pbl.dll in der java.path.library fehlt.
Jetzt möchte ich die DLL die oben im Anhang ist irgendwie einbinden.

Was meinst du mit Header der DLL? Versteh ich nicht.


Gruß Steffen
 
Beim starten deines Programm mußt du den library.path mitgeben:
java -Djava.library.path=c:\programme\emis_pbl.dll MeinProgramm

Und bei dem loadLibrary-Aufruf mußt du das .dll weglassen.
 
Zurück