Java używa zmiennej java.library.path
do określenia lokalizacji, w które ma szukać natywnych bibliotek (*.so, *.dll etc.). To, że dostajesz błąd "Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path"
, oznacza, że java próbowała załadować bibliotekę, korzystając z ustawień systemowych, ale nie była w stanie jej odnaleźć.
Możesz to "naprawić" wskazując javie, gdzie ma szukać natywnych bibliotek win32com/bridge2java (*.dll/*.so
), np. używając przełącznika -Djava.library.path=/katalog/w/ktorym/masz/win32com_i_bridge2java
.
Odpalasz np. java -Djava.library.path=$HOME/projekt/biblioteki_natywne -jar moj.jar
(bądź definiując java.library.path w ustawieniach projektowych)
Może się okazać, że te natywne biblioteki na Macu nie działają, bo są w projekcie stworzone pod konkretną platformę/wersję systemu operacyjnego.
Domyślnie java.library.path
określne jest na podstawie ustawień systemowych:
- Linux:
$LD_LIBRARY_PATH
- Win:
$PATH
- Mac:
$DYLD_LIBRARY_PATH
Alternatywnie możesz skopiować owe biblioteki do DYLD_LIBRARY_PATH, albo ustawić DYLD_LIBRARY_PATH, tak by zawierało na katalog z bibliotekami win32com, bridge2java.
Pod linuksem można ustawić w profilu użytkownika. Na macu pewnie jakoś podobnie:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/projekty/projekX/biblioteki_natywne