当前位置: 技术问答>linux和unix
web项目调用so问题
来源: 互联网 发布时间:2017-03-02
本文导语: 公司给了个so和一个java类 public class Monitor{ static{ System.load("/home/Monitor.so"); } public native static void sendMsg(String message); public static main(Stirng message){ Monitor monitor = new Monitor(); monitor.sendMsg("fdfldf|...
公司给了个so和一个java类
public class Monitor{
static{
System.load("/home/Monitor.so");
}
public native static void sendMsg(String message);
public static main(Stirng message){
Monitor monitor = new Monitor();
monitor.sendMsg("fdfldf|fldkfldkf|fdfdf");
}
}
我在linux下java Monitor执行成功了,没问题!
但是我在web项目中调用Monitor.class中的sendMsg方法就会出错java.lang.UnsatisfiedLinkError:
环境 jdk1.6 websphere Monitor.class在应用WEB-INF/classes下! 求个问大帝指点啊!都困扰我好久了!
public class Monitor{
static{
System.load("/home/Monitor.so");
}
public native static void sendMsg(String message);
public static main(Stirng message){
Monitor monitor = new Monitor();
monitor.sendMsg("fdfldf|fldkfldkf|fdfdf");
}
}
我在linux下java Monitor执行成功了,没问题!
但是我在web项目中调用Monitor.class中的sendMsg方法就会出错java.lang.UnsatisfiedLinkError:
环境 jdk1.6 websphere Monitor.class在应用WEB-INF/classes下! 求个问大帝指点啊!都困扰我好久了!
|
做几个尝试吧:
首先看下so文件是否在类中硬编码的文件路径下,你这是/home/Monitor.so;
再次执行chmod +x /home/Monitor.so;
再没效果就可能是so本身在web服务器下就不能运行的;
jni在web中应用没问题的,用法就是这样,只需运行时jvm能找到so,可以通过控制LD_LIBRARY_PATH之类的环境变量实现~
首先看下so文件是否在类中硬编码的文件路径下,你这是/home/Monitor.so;
再次执行chmod +x /home/Monitor.so;
再没效果就可能是so本身在web服务器下就不能运行的;
jni在web中应用没问题的,用法就是这样,只需运行时jvm能找到so,可以通过控制LD_LIBRARY_PATH之类的环境变量实现~