ich beschäftige mich seit kurzem mit Reinforcement Learning und habe dem Computer zunächst beigebracht, TicTacToe zu spielen. Das habe ich ohne Neuronale Netze, sondern über eine Tabelle realisiert, in der nach und nach jeder Zustand verknüpft mit jeder Aktion bewertet wurde. Jetzt würde ich meinen Horizont gern erweitern und versuchen, diese Problemstellung mithilfe eines Neuronalen Netzes zu lösen.
Für die Entwicklung meiner Programme nutze ich die Java-Entwicklungsumgebung BlueJ und zwar als Standalone Version auf einem USB-Stick. BlueJ bringt also Java direkt mit und ich bin unabhängig von einer Java-Installation auf dem PC. Ich würde nun gern über die Wrapperklasse irgendwie eine Verbindung mit der DLL herstellen, leider bekomme ich beim Versuch, die Version auszulesen einen Fehler.
Code: Select all
java.lang.UnsatisfiedLinkError: MBDllWrapper.GetWrapperVersionInfo()Ljava/lang/String;
Ich bin bisher wie folgt vorgegangen, vielleicht habe ich ja nur etwas vergessen, oder an die falsche Stelle kopiert.
- Ich habe die Datei MBDIIWrapper.java in mein Projektverzeichnis kopiert, diese Klasse eingebunden und übersetzt.
- Ich habe die im Kommentar genannten Dateien MBDllWrapper64.dll und MemBrainDll64.dll in den Ordner bluej\jdk\bin eingefügt. Für mich scheint dieser Ort grundsätzlich passend, da in diesem Ordner lauter .dll Dateien liegen.
- Ich habe dann eine Klasse geschrieben, in der zuerst ein Objekt "membrain" der Klasse MBDllwrapper erzeugt und die Methode membrain.GetWrapperVersionInfo() aufgerufen.
EDIT: Nur zur Ergänzung, ich bin ziemlich sicher, dass der Ordner richtig ist. Ich habe jetzt im Debugging noch einmal geschaut und beim Erzeugen des Wrapper-Objekts taucht folgendes auf:
Code: Select all
java.lang.ClassLoader$NativeLibrary.load
Code: Select all
String name = "F:\\BlueJ.....\\bluej\\jdk\\bin\\MBDllWrapper64.dll"
Viele Grüße
Martin