2010-12-03 3 views
3

Ich habe eine Anwendung, die JNI für einige native Funktionen verwendet, die in einer DLL sind. Die Anwendung läuft korrekt auf Windows XP, aber wenn ich das Programm auf Windows 2000 laufen, erhalte ich folgendes:Java Ausnahme beim Wechsel von XP zu WIN2K

alt text

 

    java.lang.UnsatisfiedLinkError: C:\Program Files\Compunetix\stixDlls\CMSCI Dll.d 
ll: The specified procedure could not be found 
     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.load0(Unknown Source) 
     at java.lang.System.load(Unknown Source) 
     at com.compunetix.vsd.stix.main.Main.main(Main.java:165) 
 

Irgendwelche Ideen?

Dank

+0

Funktioniert die Java-Laufzeitumgebung korrekt? Hast du versucht, andere Java-Programme auszuführen? –

+0

Existiert diese DLL an diesem Speicherort in Ihrer Windows 2000-Umgebung? Ist es die exakt gleiche DLL, die in XP ausgeführt wird? –

+0

@Tom - Nur Java neu installiert. Alles scheint in Ordnung zu sein – user489041

Antwort

4

es könnte sein, dass die DLL eine andere DLL verwendet, die in dieser zweiten Maschine ist nicht verfügbar. Verwenden Sie Dependency walker/, um genau zu finden, welche DLL fehlt.

+0

Es gab zwei Funktionen, die auf WIN2K fehlen. Vielen Dank. Ich muss die DLL-Situation neu bewerten. – user489041

+0

@ user489041, ohne es vor mir läuft ist ein bisschen schwierig, ich habe es selten verwendet, aber es war ziemlich einfach. Ich würde sagen, wählen Sie Kernel32.dll im oberen Teil und dann scrollen Sie nach unten in der unteren, bis Sie einige DLL in rot oder etwas finden. Typische Dinge, die ich gesehen habe, fehlen .net oder fehlt eine bestimmte Version von IE zum Beispiel. – Persimmonium