Java-Programm findet DLLs nicht!

Dann07

Dann07

Aktives Mitglied
Guten Tag/Abend!
Ich experimentiere seit einiger seit mit der/die/das JNI (Java Native Interface).. Keine Ahnung ob der, die oder das. ­čśů
Und ich hab eine DLL erstellt die auf andere DLLs also Bibliotheken zugreift.
Nun versuche ich in meinem Java-Programm meine DLL zu laden mit:

Java:
System.loadLibrary("meineDLL");

Jetzt gibt er mir aber einen Fehler:

Java:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Pfad\zu\meiner\DLL\meineDll.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)

Also er kann die anderen DLLs nicht finden.
Dabei sind die DLLs in den gleichen Ordner wie meine DLL. (Das w├Ąre im Projekt-Ordner)
Ich hab schon alles im Internet durch geguckt. (Vielleicht nicht alles aber das was ich finden konnte. :D)

Vielleicht kann mir ja wer helfen. Freue mich auf jede Antwort.

Paar Informationen die vielleicht helfen (hab gelesen das die Architektur wichtig ist):

Prozessor-Architektur: x64
Betriebssystem-Architektur (Windows 10 Home): 64-Bit
Meine DLL wurde kompiliert f├╝r: x64
Die DLLs (Bibliotheken) die ich verwende sind f├╝r: x64
Java,JDK ist f├╝r: x64
Java-IDE: Eclipse
C++-IDE: Visual Studio 2019 Community

Ich denke das diese Informationen (VIELLEICHT) hilfreich sind.
 
H

httpdigest

Top Contributor
Die JVM l├Ądt DLLs, die nicht ├╝ber einen absoluten Pfad angegeben sind, wie also die Dependent Libraries deiner DLL, aus dem java.library.path.
Starte deine JVM mal mit dem `-Djava.library.path=Pfad\zu\meiner\DLL` JVM Argument. Achtung: JVM Argument und NICHT Program argument. Also vor ein eventuelles -jar Argument im Aufruf!
 
Dann07

Dann07

Aktives Mitglied
Die JVM l├Ądt DLLs, die nicht ├╝ber einen absoluten Pfad angegeben sind, wie also die Dependent Libraries deiner DLL, aus dem java.library.path.
Starte deine JVM mal mit dem `-Djava.library.path=Pfad\zu\meiner\DLL` JVM Argument. Achtung: JVM Argument und NICHT Program argument. Also vor ein eventuelles -jar Argument im Aufruf!

Danke f├╝r die Antwort aber das hab ich schon versucht. Nur hat es nicht geklappt. Trotzdem Danke nochmal!
 
H

httpdigest

Top Contributor
Hmm... hast du die PATH Umgebungsvariable auch schon um diesen Pfad erweitert? Zum Beispiel in der lokalen cmd Session:
Code:
set PATH=%PATH%;Pfad\zu\meiner\DLL
java ...
 
H

httpdigest

Top Contributor
Dann sind nicht wirklich alle n├Âtigen DLLs in dem Ordner. Hast du mal mit Dependency Walker in die DLL geschaut, welche abh├Ąngigen DLLs denn ben├Âtigt werden?
 
Dann07

Dann07

Aktives Mitglied
├ähm... das Programm h├Ąngt sich jedes Mal auf. ­čśé
Aber EIGENTLICH hab ich alle DLLs zusammen die ich ben├Âtige. (Selbst die die nicht ben├Âtigt werden. ­čĄú)
 
H

httpdigest

Top Contributor
├ähm... das Programm h├Ąngt sich jedes Mal auf. ­čśé
Lass es einfach mal ein bisschen laufen. Das Problem habe ich auch, seitdem Visual Studio ganz viel .net und Assembly-Manifest MIST in die Module reingeneriert und er tausende .net Assembly DLLs lazy als Abh├Ąngigkeit drin hat... am besten im MSVC Projekt der DLL die Runtime statisch linken und s├Ąmtliche Optionen, die nur nach "Manifest" klingen, ausschalten.
 
Dann07

Dann07

Aktives Mitglied
Gleicher Fehler wie vorher. Alles was mit Manifest zu tuhen hatte hab ich deaktiviert.
 
H

httpdigest

Top Contributor
Und was sagt letztlich Dependency Walker? Du musst dem etwas Zeit geben. :)
Ist vielleicht auch eine transitive Abh├Ąngigkeit, also eine Abh├Ąngigkeit einer Abh├Ąngigkeit.
 
Dann07

Dann07

Aktives Mitglied
Ich hab mal geguckt. Die DLL ben├Âtigt: KERNEL32.DLL, VCRUNTIME140D.DLL, UCRTBASED.DLL, OLE32.DLL, KERNELBASE.DLL.
Aber die sollten doch kein Problem darstellen oder nicht?
 
H

httpdigest

Top Contributor
VCRUNTIME140D.DLL k├Ânnte ein Problem sein. Das ist die Debug-Variante der Runtime Library.
Kannst ja mal in C:\Windows\System32\ oder so gucken, ob da alles da ist. Bezweifle ich aber. Diese DLL ist bestimmt nur in der MSVC Installation irgendwo hinterlegt und wird dynamisch dazugelinkt, wenn du ein Prozess debuggst.
Bau mal im Release-Modus und, wie gesagt, linke nicht per Multithreaded DLL, sondern per "Multithreaded", also linke die Runtime statisch.
 
Dann07

Dann07

Aktives Mitglied
Also Release-Modus kann ich versuchen aber alles andere dahinter musst du mir erkl├Ąren. Ich bin nicht wirklich helle was das angeht. ­čśé
 
B

BestGoalkeeper

Gast
Lass dir mal mit java -XshowSettings:properties -version den shared library search path ausgeben:

Ansonsten halte dich an die Anleitung von @httpdigest was den Debug-Modus betrifft.
 
Dann07

Dann07

Aktives Mitglied
Ich hab endlich mein Problem behoben! Und das ist die L├Âsung:

Ich hatte DLLs genommen die nicht f├╝r meine Windows Version waren. Deshalb konnte Java die wahrscheinlich nicht laden.
Und ich muss im Java-Programm die DLLs die ich ben├Âtige laden. (Also nicht nur meine DLL).

Das sieht im Programm so aus:

Java:
System.loadLibrary("DLL1");
System.loadLibrary("DLL2");
System.loadLibrary("DLL3");
System.loadLibrary("MeineDLL");

Ich danke euch trotzdem das ihr mir geholfen habt. ;):)
 
mihe7

mihe7

Top Contributor
Ich experimentiere seit einiger seit mit der/die/das JNI (Java Native Interface).. Keine Ahnung ob der, die oder das. ­čśů
Off Topic, aber da ich durchaus Gefallen an der Auseinandersetzung mit Sprachen, gerne auch der eigenen, finde...

Verk├╝rzen wir den Satz mal auf das Wesentliche: "Ich experimentiere mit JNI." W├╝rde schon reichen :) Aber es soll ja ein Artikel rein.

"Ich experimentiere." w├Ąre ein vollst├Ąndiger Satz, bestehend aus Subjekt ("Ich") und Pr├Ądikat ("experimentiere"). Das Anh├Ąngsel "mit JNI" ist eine Erg├Ąnzung.

Aufgrund der Pr├Ąposition "mit" kommen hier prinzipiell die adverbiale Erg├Ąnzung und das Pr├Ąpositionalobjekt in Frage. Da hier aber kein Umstand beschrieben wird, bleibt nur das Objekt ├╝brig. L├Ąsst sich auch daran erkennen, dass die Frage nach JNI nicht ohne "mit" auskommt: "Womit experimentiere ich?" oder auch "Mit (wem oder) was experimentiere ich?"

Die Frage nach der adverbialen Erg├Ąnzung w├╝rde dagegen ohne die Pr├Ąposition auskommen, z. B. w├╝rde beim Satz "Ich experimentiere mit gr├Â├čter Sorgfalt." die Frage "Wie experimentiere ich?" (ohne, dass dort "mit" vorkommen w├╝rde) gestellt werden k├Ânnen, die "mit gr├Â├čter Sorgfalt" beantwortet w├╝rde.

Kommen wir zum Artikel. Das Wort "JNI" ist keinesfalls maskulin. Gehen wir von Java Native Interface aus, w├Ąre "Interface" ausschlaggebend. Interface ist neutral ("das Interface"). Da das Objekt im Dativ steht, lautet der korrekte Satz folglich "Ich experimentiere mit dem JNI."

Interessant ist, dass das bei Abk├╝rzungen durchaus auch mal ein anderer Genus unterstellt wird. So wird "API" in der Regel als feminines Wort ("die API") betrachtet, obwohl es in der Langform ganz klar neutral w├Ąre ("das Application Programming Interface"). Geht man von "die API" aus, w├╝rde der Satz "Ich experimentiere mit der API." lauten. Warum "API" als feminines Wort gesehen wird, w├╝rde mich allerdings auch mal interessieren. Das wird vermutlich einfach ein Sprachgebrauch sein, der sich durchgesetzt hat.

Anderes Beispiel hierf├╝r w├Ąre "BIC". Da liest man auch oft beide Varianten, also "der BIC" und "die BIC" (auch bei Banken). Da "BIC" f├╝r "Bank Identifier Code" steht, m├╝sste es korrekt "der BIC" lauten. Manchmal liest man auch Konstrukte wie "der BIC-Code", was dann zum v├Âlligen Quatsch ausartet (wie auch bei "PIN-Nummer" oder "TAN-Nummer").
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P USER Management in SQL ├╝bergreifend auf JAVA Programm Allgemeine Java-Themen 41
D Verkauf von einem Programm welches ich in Java geschrieben habe Allgemeine Java-Themen 4
D Boolean von ein anderem Java Programm w├Ąhrend der Laufzeit ├Ąndern Allgemeine Java-Themen 23
L Excel Datei l├Âscht sich selbst im Programm - Java Allgemeine Java-Themen 3
ralfb1105 Starten Java App(s) (.jar) aus einem Java Programm Allgemeine Java-Themen 18
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
E Java Programm mit Clients erweitern - M├Âglichkeiten? Allgemeine Java-Themen 2
J Java "Bank Programm" Brauche eure Hilfe Allgemeine Java-Themen 3
S Java Programm (Spiel mit den Boxen) Allgemeine Java-Themen 1
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
E Mit Java ein Python Programm starten Allgemeine Java-Themen 20
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
P Schnittstelle java Programm zu Webserver / Browser Allgemeine Java-Themen 2
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
F Java-Programm lizensieren Allgemeine Java-Themen 21
T Java Programm in Internetseite? Allgemeine Java-Themen 4
T Java Programm frisst RAM Allgemeine Java-Themen 6
H Alter Java-Programm l├Ąuft nicht mehr. Laut strace fehlt libpthread.so.0 Allgemeine Java-Themen 3
L Java-Programm Zahlenkombinationen ausgeben Allgemeine Java-Themen 10
T Java Programm sauber beenden (Mac OS) Allgemeine Java-Themen 7
F In OSX: Java-Programm ├╝ber URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
itwestnet Mein Java-Programm l├Ąuft nicht in China Allgemeine Java-Themen 4
B SMS von Vodafone Mobile Connest mit JAVA-Programm lesen Allgemeine Java-Themen 0
J Java Auf anderes Programm warten Allgemeine Java-Themen 9
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
Developer_X OpenStreetMap in Java Programm einbinden Allgemeine Java-Themen 10
Developer_X Java Programm Beenden Allgemeine Java-Themen 3
T Dateien zur Laufzeit in Java-Programm packen? Allgemeine Java-Themen 3
S Java-Programm verbraucht zu viel RAM Allgemeine Java-Themen 8
S Java-Programm f├╝r "B├Ârsenanalyse" schreiben Allgemeine Java-Themen 4
U Eclipse Java Programm besch├Ądigt .tar.gz dateien beim Entpacken Allgemeine Java-Themen 7
M Problem mit (etwas komplizierterem) Java Programm Allgemeine Java-Themen 14
L Pr├╝fen, ob Programm ├╝ber 32bit oder 64bit Java ausgef├╝hrt wird Allgemeine Java-Themen 4
J Java Programm - ausf├╝hrbare Jar Datei erstellen Allgemeine Java-Themen 2
C Programm von C++ auf Java umschreiben Allgemeine Java-Themen 27
J Java-Programm Allgemeine Java-Themen 13
I Java-Programm: Zahlen in Worte Allgemeine Java-Themen 22
P Check, welche Java Version installiert bevor ein Programm ausgef├╝hrt wird. Allgemeine Java-Themen 12
Java-Insel Wie kann ich ein Java-Programm zum "automatischen ├ľffner" einer Dateisorte machen? Allgemeine Java-Themen 13
O Java-Programm lastet CPU aus Allgemeine Java-Themen 8
C Registration im Web mit Java-Programm durchf├╝hren Allgemeine Java-Themen 6
R Java Programm beenden mit SIGTERM Allgemeine Java-Themen 9
T Java Programm als Batch Befehl Allgemeine Java-Themen 6
G Runtime.exec beendet Programm unter Linux, wenn Java Programm beendet wird Allgemeine Java-Themen 3
H Java-Programm nur mit SDK ausf├╝hrbar? Allgemeine Java-Themen 5
C Java Programm ├╝ber SSH starten Allgemeine Java-Themen 16
S jar Datei mit Java Programm ├Âffnen Allgemeine Java-Themen 3
J Java-Programm im Hintergrund Allgemeine Java-Themen 3
Jackii Java Programm aus anderen Java Programm starten Allgemeine Java-Themen 20
Madlip Erste Schritte Java speichert Daten im Programm?!? Allgemeine Java-Themen 9
G Java Programm aus Java Programm starten Allgemeine Java-Themen 6
M Wie Java Programm mit grafischen Oberfl├Ąche versehen Allgemeine Java-Themen 2
JAVATUX Java Programm mit ATI Stream Unterst├╝tzung Allgemeine Java-Themen 3
J Java programm l├Ąsst sich in win7 nach linux install nicht mehr ausf├╝hren Allgemeine Java-Themen 18
C Mit Java in einem anderes Programm eingreifen Allgemeine Java-Themen 21
s4ke C++/C KeyListener zusammen mit Java Programm Allgemeine Java-Themen 4
S Java Programm -System Neustart ├╝berleben? Allgemeine Java-Themen 3
S Brauche Hilfe bei Planung f├╝r JAVA-Programm Allgemeine Java-Themen 3
T Java Programm aus anderem Java Programm starten Allgemeine Java-Themen 13
J Eclipse Java Programm aus anderem Java Programm starten Allgemeine Java-Themen 14
F Anderes Java-Programm aufrufen Allgemeine Java-Themen 2
B Excel Datei in einem Java Programm mit GUI darstellen Allgemeine Java-Themen 9
M Java Programm als Dienst starten... Allgemeine Java-Themen 4
A Installation von Java ME Programm auf Sony Ericsson Handy Allgemeine Java-Themen 3
M Rein informativ - Daten aus Excel-Tabelle in Java-Programm importieren Allgemeine Java-Themen 3
J Installer f├╝r Java-Programm Allgemeine Java-Themen 5
N Programm starter in Java? Allgemeine Java-Themen 12
X Aus Java Applikation externes Programm starten Allgemeine Java-Themen 3
T Mit JNI von C++ auf ein laufendes Java-Programm zugreifen Allgemeine Java-Themen 10
H aus Java-Programm Dateien ├Âffnen Allgemeine Java-Themen 5
Z Java Programm - xxxxx auf der Konsole ausgeben Allgemeine Java-Themen 4
T cpp Programm via jna in java nutzen Allgemeine Java-Themen 3
M Variablen an Java-Programm ├╝bergeben Allgemeine Java-Themen 3
G Java Programm mit Freischalt code entwickeln Allgemeine Java-Themen 30
clupus Meldung an laufendes Java-Programm schicken - Wie? Allgemeine Java-Themen 6
E Zweites Java Programm sichtbar starten Allgemeine Java-Themen 4
T Mit Java Programm auf Firefox zugreifen Allgemeine Java-Themen 2
Airwolf89 *.exe mit java programm ausf├╝hren Allgemeine Java-Themen 1
V Java-Programm automatisch starten Allgemeine Java-Themen 2
MQue aktuelle Wetterdaten f├╝r Java- Programm Allgemeine Java-Themen 9
O Programm mittels Java installieren Allgemeine Java-Themen 15
K Java Chat Programm Allgemeine Java-Themen 2
M Java programm ├╝ber cmd ├Âffnen Allgemeine Java-Themen 2
Schandro Datei ├Âffnen mit... Bestimmten Dateityp mit einen Java-Programm ├Âffnen lassen Allgemeine Java-Themen 5
N Per Java-Programm onClick ausf├╝hren Allgemeine Java-Themen 5
D mit Java das Programm "Editor" ├Âffnen Allgemeine Java-Themen 7
M Wie Java-Programm ├╝ber Batch-file starten? Allgemeine Java-Themen 8
G Logikhindernisse im Java- Programm Allgemeine Java-Themen 6
V Java-Programm nur "mit halber Kraft" arbeiten lass Allgemeine Java-Themen 11
_SeiA_ Hilfe Kleines Java Programm schreiben. Summen. Allgemeine Java-Themen 3
G Java- Programm mit bat- Datei starten Allgemeine Java-Themen 16
V Java-Programm richtig neustarten? Allgemeine Java-Themen 9
G JDBC Programm und niedrige Java-Versionen Allgemeine Java-Themen 14
oltoko PID f├╝r das laufende Java Programm herausfinden Allgemeine Java-Themen 3
P Installationsroutine f├╝r eigenes Java-Programm Allgemeine Java-Themen 3
A Kommunikation zwischen C++ und Java-Programm Allgemeine Java-Themen 4
T Brute-Force Programm in Java Allgemeine Java-Themen 6
G weiteres Java Programm vom Applet aus starten? Allgemeine Java-Themen 9
V Java-Programm weiss zur Laufzeit wie es gestartet wurde? Allgemeine Java-Themen 6
J WebBrowser Java Programm Download, Ausf├╝hren? Allgemeine Java-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben