Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
EclipseEinbinden von Nativer Bibliothek funktioniert nicht
ich hab ein mir unerkärliches Problem mit Eclipse: das Einbinden einer Nativen Biblieothek funktioniert nicht. Ich habe brav in ProjetProperties > JavaBuildPath > Libraries > Native library location des Jars den Pfad innerhalb des Projekts angegeben, aber beim Starten wird immer noch ein UnsatisfiedLinkError geworfen, ich hab 64bit und da es damit schon mal Probleme gab hab ich sowohl mit Java 7 64bit als auch mit Java 6 32bit versucht zu starten, half auch nix. Das merkwürdige ist das nur diese eine Library nicht gefunden wird, andere (im selben Ordner, aber von anderen .jars) werden gefunden. Falls es irgendwas zum Problem dazutut: Es handelt sich um die Biblithek von JNLua. (Habs mit auch mit LuaJava versucht, funktioniert genauso wenig)
Du hast Eclipse unter 64-bit-Java laufen. Die Bibliothek ist aber eine 32-bit-Version. Dann kann diese nicht geladen werden.
Wenn alle meine Vermutungen stimmen, probier mal Dein Programm mit einer 32-bit-Java zu starten.
Dieses Problem hatte ich nämlich auch mal mit einem HBCI-Treiber fürs Online-Banking. Beim externen Aufruf musste ich, natürlich, über -Djava.library.path=<Pfad zur 32-bit-Datei> einstellen.
Dähmlicher debug-Modus, der die Fehlermeldung nicht ausgibt, das ist schon mal ein Hinweis:
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Kevin\Documents\minecraft\mcp\jars\bin\natives\jnlua52.dll: Can't find dependent libraries
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 com.naef.jnlua.NativeSupport$DefaultLoader.load(NativeSupport.java:76)
at com.naef.jnlua.LuaState.<clinit>(LuaState.java:134)
at modcraft.Test.main(Test.java:15)
Danke, ich hab zwar keine Dependencies in den Beschreibungen gefunden, aber ich werd nochmal suchen gehen.
Und bitte nicht darüber aufregen, dass ich an minecraft rumbastle.
Edit: @turtle hast du meinen ersten Post vollständig gelesen? ich habs sowohl mit einer 64 bit als auch mit einer 32bit Version ausprobiert
"Can't find dependent libraries" deutet schonmal darauf hin, dass er DLLs nicht finde, die VON dieser DLL verwendet werden. Hast du zufällig Visual Studio installiert? Dann kann man sich mit
dumpbin /DEPENDENTS jnlua52.dll
ansehen, welche DLLs das sind. Notfalls die DLL mal irgendwo hochladen, dann kann man mal schauen.
Nein, ich hab leider kein Visual Studio installiert. Könntest du das bitte für mich machen? Die Datei ist unter folgendem Link frei verfügbar: jnlua-1.0.1-native.zip
Image has the following dependencies:
lua52.dll
MSVCR90.dll
KERNEL32.dll
Das Problem ist wohl die erste: Das ist wohl die DLL von LUA 5.2. Die muss man sich selbst bauen, oder zusehen, dass man eine JNLUA findet, die zu einer LUA-Version passt, für die man die DLLs hat... Auf luaforwindows - Installation of Lua for the Windows operating systems including many lua libraries. - Google Project Hosting gibt's anscheinend nur eine ganz bestimmte version... Die JNLua 0.9.3, die es dort auch gibt, braucht die lua5.1.dll, vielleicht ist die bei dem Windows-Paket dabei..!?
Die lua52.dll und auch die MSVCR90.dll sind in Lua 5.2 enthalten (ich hab keine ahnung wo ich die her hab, aber ich hab eine volständige Instaltation). Habe beide in den Pfad kopiert, hat aber immer noch nicht funktioniert: Selbe Fehlermeldung wie vorher.
OK, ich hätte jetzt noch vermutet, dass die "Microsoft Redistributables" fehlen, aber zumindest die DLL scheint ja da zu sein... Aber falls du sie noch nicht installiert hast, könntest du ggf. mal schauen, ob es was bringt, sie mit dem Paket von Detail Seite Microsoft*Visual*C++*2008 Redistributable Package (x86) zu installieren... EDIT: Ggf. darauf achten, ob 32 oder 64 bit
Ansonsten könnte es jetzt AFAIK nur noch sein, dass die LUA DLL ihrerseits nach DLLs sucht, die nicht da sind, aber das wird jetzt langsam schon arge Spekulation...