2

我的目标是让 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吗?

在此先感谢并致以最诚挚的问候, 奥利

4

0 回答 0