java装载动态链接库与调用OS命令 – tonyhuang

一 装载动态链接库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装载动态链接库与调用OS命令 – tonyhuang

相关文章:

你感兴趣的文章:

标签云: