一 装载动态链接库
1.用System.loadLibrary()
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
2.用System.load()
windows:
- 设置
-Djava.library.path=path/to用system.load("path/to/smething.dll") 。path/to是包含something.dll的目录。load()的参数是绝对路径 - 或者 设置path包含
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/LD_LIBRARY_PATH包含
path/to, 用system.load("path/to/smething.so") 。path/to是包含something.so的目录。load()的参数是绝对路径
二 调用OS命令
1.linux命令
String[] cmd = new String[] {"命令名", "-option", 参数1, 参数2,...};
例如,String[] cmd =
new String[] {"ln", "-s", sourceFileStr, targetFileStr};
Runtime.getRuntime().exec(cmd);
2.windows命令
String[] cmd = new String[] {“cmd”,"cmd option", "命令名", "-option", 参数1, 参数2,...};
例如,String[] cmd = new String[] {"cmd.exe", "/C", "mklink", targetFileStr, sourceFileStr};
Runtime.getRuntime().exec(cmd);
本文详细介绍了在Java中如何加载动态链接库,包括使用System.loadLibrary()和System.load()方法,并分别针对Windows和Linux系统给出了具体操作。同时,文章也讲解了如何在Java中调用操作系统命令,提供了在Linux和Windows环境下执行命令的示例。
2万+

被折叠的 条评论
为什么被折叠?



