windows:
设置-Djava.library.path=
path/to/something.dll
, 然后用System.loadLibrary("something")
。注意在System.loadLibrary()调用中文件名不带.dll
linux:
设置-Djava.library.path=
path/to/something.so
, 然后用System.loadLibrary("something")
。注意在System.loadLibrary()调用中文件名不带.so
也可以在操作系统的环境变量中设置PATH (针对Windows)或者LD_LIBRARY_PATH(针对Linux),这样的设置也会生效是因为对windows而言jdk/jre目录(jdk\bin或jre\bin)、程序当前目录、Windows目录(c:\windows)、系统目录(c:\windows\system32)以及系统环境变量path指定目录都算作是java.library.path
例如:
ex1:
@REM window bat script demo using PATH
@echo off
set PATH==path/to;%PATH%
java -classpath myclaspath xx.xx.MyClass
ex2:
@REM window bat script demo using -Djava.library.path
@echo off
java -Djava.library.path=path/to -classpath myclaspath
windows:
-Djava.library.path=
path/to
用system.load("
path/to
/smething.dll") 。path/to
是包含something.dll的目录。load()的参数是绝对路径path/to
, 用system.load(
"path/to
/smething.dll") 。path/to
是包含something.dll的目录。load()的参数是绝对路径linux:
-Djava.library.path=
path/to
用system.load("
path/to
/smething.so") 。path/to
是包含something.so的目录。load()的参数是绝对路径path/to
, 用system.load(
"path/to
/smething.so") 。path/to
是包含something.so的目录。load()的参数是绝对路径String[] cmd = new String[] {"命令名", "-option", 参数1, 参数2,...};
例如,String[] cmd = new String[] {"ln", "-s", sourceFileStr, targetFileStr};
Runtime.getRuntime().exec(cmd);
String[] cmd = new String[] {“cmd”,"cmd option", "命令名", "-option", 参数1, 参数2,...};
例如,String[] cmd = new String[] {"cmd.exe", "/C", "mklink", targetFileStr, sourceFileStr};
Runtime.getRuntime().exec(cmd);