dll's werden nicht gefunden! UnsatisfiedLinkError

g-a-s-t

Mitglied
Hallo zusammen,

ich habe auf meinem Rechner ein Java-Programm geschrieben, das auf diesem (unter Eclipse) auch wunderbar läuft (Windows XP). Doch wenn ich alle Dateien auf einen anderen PC übertrage um es dort mit Eclipse weiter zu verändern oder was auch immer, dann startet es nicht.
Es erscheint dann folgendes:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\vtkCommonJava.dll: Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren
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 vtk.vtkPanel.<clinit>(vtkPanel.java:26)
at Projekt.GUI.<init>(GUI.java:86)
at start.Programmstart.main(Programmstart.java:46)

Ich habe die benötigte dll im obigen Ordner gespeichert, dennoch erscheint dieser Fehler. Kann mir jemand helfen, was ich da nun noch machen kann? Bzw. was ist mit Anwendungskonfiguration gemeint?
Was ist mit "Anwendung neu installieren" gemeint, welche Anwendung?

Gruss
 
Hast du die Konfiguration zum Starten deines Programms auch mit übernommen und ist da ein library.path bei den VM-Options angegeben?
 
Hallo zusammen,

ich habe auf meinem Rechner ein Java-Programm geschrieben, das auf diesem (unter Eclipse) auch wunderbar läuft (Windows XP). Doch wenn ich alle Dateien auf einen anderen PC übertrage um es dort mit Eclipse weiter zu verändern oder was auch immer, dann startet es nicht.
Es erscheint dann folgendes:

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\vtkCommonJava.dll: Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren
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 vtk.vtkPanel.<clinit>(vtkPanel.java:26)
at Projekt.GUI.<init>(GUI.java:86)
at start.Programmstart.main(Programmstart.java:46)

Ich habe die benötigte dll im obigen Ordner gespeichert, dennoch erscheint dieser Fehler. Kann mir jemand helfen, was ich da nun noch machen kann? Bzw. was ist mit Anwendungskonfiguration gemeint?
Was ist mit "Anwendung neu installieren" gemeint, welche Anwendung?

Gruss

Es gibt verschiedene Ursachen:
1. vtkCommonJava.dll benötigt weitere DLLs beim Laden. Das kann dir Java leider nicht sagen. VTK = VisualToolKit ? Evtl. muss dies erst auf dem Zielrechner installiert werden oder mehrere DLLS zusätzlich kopiert weren.
2. Passt der Pfad zur DLL ? Hast du wirklich per Hand eine DLL nach C:\WINDOWS\system32 kopiert ?
3. Du kannst beim Laden einer DLL einen absoluten Pfad angeben - siehe unten:

JNI lässt zwei Arten beim Laden von DLLs zu
- System.loadLibrary: Laden aud dem Path (-Djava.library.path Parameter bei JVM bzw. PATH in Windows)
- System.load: Absoluter Pfad möglich
Probier doch mal:
System.load("c:/path/to/dll/vtkCommonJava.dll");
 
Erstmal danke für eure Hinweise!

Es gibt verschiedene Ursachen:
1. vtkCommonJava.dll benötigt weitere DLLs beim Laden. Das kann dir Java leider nicht sagen. VTK = VisualToolKit ? Evtl. muss dies erst auf dem Zielrechner installiert werden oder mehrere DLLS zusätzlich kopiert weren.
2. Passt der Pfad zur DLL ? Hast du wirklich per Hand eine DLL nach C:\WINDOWS\system32 kopiert ?
3. Du kannst beim Laden einer DLL einen absoluten Pfad angeben - siehe unten: ...
zu 1.) VTK=Visualization ToolKit. Auf Zielrechner installiert, aber ohne Erfolg.
zu 2.) Pfad ist korrekt. Alle benötigten DLL's liegen dort.
zu 3.) Im Eclipse habe ich dies "-Djava.library.path=.;C:\WINDOWS\system32" als VM-Argument übergeben und das Programm erneut gestartet. Aber gleicher Fehler...

Was genau ist mit der Konfiguration gemeint? Was oder wie kann ich wo was einstellen? Kann mich nicht daran erinnern irgendwelche Einstellungen auf dem Rechner gemacht zu haben auf dem es läuft.
 
Vergleich doch mal die Pfade auf beiden Maschinen (echo %PATH%). Falls hier nichts auffällig ist, benutzte System.load("absoluter Pfad/lib.dll"), um die dll zu laden.
 

Neue Beiträge

Zurück