linux Jni调用so文件建了测试WebProject 写了一个servlet执行调用 一启动tomcat jvm崩溃了 错误日志如下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux Jni调用so文件建了测试WebProject 写了一个servlet执行调用 一启动tomcat jvm崩溃了 错误日志如下相关的知识,希望对你有一定的参考价值。
声明下 在window环境中同样的项目是可以运行的 linux单独运行测试类型也是可以的 唯独放到tomcat上就不行
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00b920c3, pid=8567, tid=3073481616
#
# JRE version: 6.0_27-b07
# Java VM: Java HotSpot(TM) Server VM (20.2-b06 mixed mode linux-x86 )
# Problematic frame:
# C [libc.so.6+0x700c3] short+0x33
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
太多贴不下
下面是代码
package uap.util;
public final class PmUtil
static
System.out.println(System.getProperty("java.library.path"));
System.loadLibrary("pmlib");
public static native int getPmlibNegShareKeyByASAddr(String strReq_IDV,
String strASIP,
String LocalIP);
public static native String getPmlibCheckTicket(
String strReq_IDV,
String strTicket,
String strASIP,
String iASsystemNum,
String iAShostNum,
String iASentityNum
);
public static native int getHello();
private PmUtil()
public static void main(String args[])
int ret = PmUtil.getPmlibNegShareKeyByASAddr("SERVICE103-2@KJRA.MILCA", "192.168.3.211", "127.0.0.1");
System.out.println("Jni调用成功,返回值为:"+ret);
你在tomcat上跑是单线程访问还是多线程访问,你的测试类应该是写的单线程吧,改成多线程测测看追问
我就是用Javac编译 然后使用Java命令执行 这样是可以得到返回值的 这算单线程嘛? 那多线程应该怎么测试呢?
追答这样当然是单线程的,多线程就是把你的java执行过程加到多线程中去再测试
你可以参考另外一位同学的说法用gdb调试下,先定位到出问题的地方
首先谢谢你的回答 这个库是人家提供给我的编译好像用的make命令吧 这个怎么加-g呢
追答-g是编译选项,要是可以干涉的就可以跟那个人提。要是不行的你就跟他说,这个是因为调用库函数出现了问题,让他解决。
在使用jni调用so库时出现的找不到文件是怎么回事?
Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/wst/Workspaces/MyEclipseProfessional/ApkPatchLibraryServer/libbsdiffjni.so: /home/wst/Workspaces/MyEclipseProfessional/ApkPatchLibraryServer/libbsdiffjni.so: cannot open shared object file: No such file or directory (Possible cause: can't load ARM-bit .so on a IA 32-bit platform) 这就是一直在报的错误,搞了好长时间没有搞好,这是哪里出现了问题?
参考技术A ossible cause: can't load ARM-bit .so on a IA 32-bit platformARM结构的程序,不可以在X86结构的CPU上执行追问
那能请教一下这个ARM结构的程序能不能转成x86结构的呢?
本回答被提问者和网友采纳以上是关于linux Jni调用so文件建了测试WebProject 写了一个servlet执行调用 一启动tomcat jvm崩溃了 错误日志如下的主要内容,如果未能解决你的问题,请参考以下文章