看一看这里:使用
java -Djava.library.path=.\%PROCESSOR_ARCHITECTURE%\ -jar /my/classpath/goes/here MainClass
绝对路径
/libs/yourjarfiles.jar
/AMD64/sqljdbc_auth.dll (the 64bit version)
/x86/sqljdbc_auth.dll (the 32 bit version)
,并称之为:
possible-values-of-processor-architecture
考虑到这一点,你可以发布你的应用程序这种方式到你的安装可能是库路径设置的一个好主意。
编辑:寻址64位主机上的32位Java中提到的担忧
助手级:Architecture.java
public class Architecture {
public static void main(String[] args) {
System.out.print(System.getProperty("os.arch"));
}
}
CMD启动程序
@ECHO OFF
for /f %%i in ('java -classpath /my/classpath/goes/here/ Architecture') do set JAVA_ARCH=%%i
java -Djava.library.path=path/to/dlls/%JAVA_ARCH%/ -cp /my/classpath/goes/here MainClass
你”你必须命名你的目录这样匹配可能的os.arch值:
/x86 - 32 bit DLL goes here
/amd64 - 64 bit DLL goes here
我想如果你知道库的路径,你甚至可以追加基于os.arch
系统属性在运行时的MainClass
该路径。
来源
2015-11-19 13:42:26
Jan
我认为你应该能够检测出你的操作系统是32位还是64位,并将java.library.path设置为你存储程序中dll的两个目录之一。只要确保在第一次联系jdbc之前设置了该值。 – Marged