我的目标是让 sybase 的 jodbc 驱动程序与我的 gradle 版本一起工作。但是System/bin64/sa_config.sh
没有按预期工作。此脚本修改/附加DYLD_LIBRARY_PATH
(请参阅脚本的提取):
# comment the following to unset the SA location.
SQLANY11="/Applications/SQLAnywhere11/System"
export SQLANY11
# comment the following lines to remove SA binaries from your path.
PATH="$SQLANY11/bin64:$SQLANY11/bin32:${PATH:-}"
export PATH
DYLD_LIBRARY_PATH="$SQLANY11/lib32:${DYLD_LIBRARY_PATH:-}"
DYLD_LIBRARY_PATH="$SQLANY11/lib64:${DYLD_LIBRARY_PATH:-}"
export DYLD_LIBRARY_PATH
但是lib64
找不到目录内的库。
为了更容易检查发生了什么,我尝试了 chilkatsoft 的示例代码。sybase 脚本使用可能性 3. 我更改了 chilkatsoft 库的脚本以检查是否可以加载 chilkatsoft 驱动程序。但是 DYLD_LIBRARY_PATH 定义不起作用(其他选项如-Djava.library.path="path/to/library"
使用这个小示例)。
我添加了一个myTestDir
包含我的测试脚本的子目录,因为 jnilib 总是在根目录中搜索。这是我的测试脚本:
#!/bin/bash
java -version
javac -encoding utf8 -classpath ".:./chilkat.jar" Test.java
BASE_PATH="/Users/Wagner/Desktop/testLIB/chilkatJava-9.5.0-jdk6-macosx/"
echo "################## TEST: with environment variables ########################"
DYLD_LIBRARY_PATH=$BASE_PATH
export DYLD_LIBRARY_PATH
echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
java -classpath ".:./chilkat.jar" Test
echo "################## TEST: with absolut path at -Djava.library.path ########################"
java -Djava.library.path=$BASE_PATH -classpath ".:./chilkat.jar" Test
echo "################## TEST: with realative path at -Djava.library.path ########################"
java -Djava.library.path=.. -classpath ".:./chilkat.jar" Test
这表明DYLD_LIBRARY_PATH
未添加到java.library.path
并且无法正常工作。但是直接使用java.library.path
是成功的。见输出:
myTestDir ./myTest.sh
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
################## TEST: with environment variables ########################
DYLD_LIBRARY_PATH=/Users/Wagner/Desktop/testLIB/chilkatJava-9.5.0-jdk6-macosx/
***** INFOS *****
java.library.path=/Users/Wagner/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
***** LOAD LIBRARY *****
Native code library failed to load.
java.lang.UnsatisfiedLinkError: no chilkat in java.library.path
################## TEST: with absolut path at -Djava.library.path ########################
***** INFOS *****
java.library.path=/Users/Wagner/Desktop/testLIB/chilkatJava-9.5.0-jdk6-macosx/
***** LOAD LIBRARY *****
***** LIBRARY LOADED *****
9.5.0.56
################## TEST: with realative path at -Djava.library.path ########################
***** INFOS *****
java.library.path=..
***** LOAD LIBRARY *****
***** LIBRARY LOADED *****
9.5.0.56
Wagner ... | testLIB | chilkatJava-9.5.0-jdk6-macosx | myTestDir
我正在使用带有所有更新的当前 Mac OS X 版本 (10.11.5)。有人有想法让这个工作DYLD_LIBRARY:PATH
吗?
在此先感谢并致以最诚挚的问候, 奥利