java调用动态库(.dll或.so)

直接通过main入口:

arguments设置:-Djava.library.path=动态库所在目录
在Linux上调.so文件:.so文件 必须命名为:libXXX.so,如:libJni.so
在Windows上调.dll文件:.dll文件 命名不要加lib,直接命名为:XXX.dll 如:Jni.dll

例:
动态库:libJniNassirDecrypt.so 或 JniNassirDecrypt.dll
java调用动态库代码:
String sharedLibraryPath = "JniNassirDecrypt";
 try {
  System.out.println(System.getProperty("java.library.path"));
  System.loadLibrary(sharedLibraryPath);
 } catch (Throwable t) {
  t.printStackTrace();
 }

 

Web application调用:

Tomcat配置

windows下:把dll直接放到tomcat/bin就行了(也可以是环境变量path的所设定的任何一个目录下)

 

 

linux: catalina.sh加入

# -----------------------------------------------------------------------------

# OS specific support.  $var _must_ be set to either true or false.

JAVA_OPTS='-Djava.library.path=/home/~~/tomcat/jni'

 

如果有多个参数要设置,只接用空格分开

如:JAVA_OPTS='=-Xms64m -Xmx256m  -Djava.library.path=/home/~~/tomcat/jni' ),不要在catalina.sh写多个JAVA_OPTS,tomcat启动时只认最后一个,这也是有很多人在tomcat中配置了参数为什么不起做用的原因

 

你可能感兴趣的:(java)