我想在destroy中调用jni执行一些操作外部设备的工作,但是都执行失败。
#
……
Register to memory mapping:
RAX=0x0000000180002710 is an unknown value
RBX={method} {0x000000003a917bb0} 'findSymbol' '(JLjava/lang/String;)J' in 'com/sun/jna/NativeLibrary'
RCX=0x000000003add39f8 is an unknown value
RDX=0x000000003d89efe8 is pointing into the stack for thread: 0x000000003add3800
RSP=0x000000003d89ef58 is pointing into the stack for thread: 0x000000003add3800
RBP=0x000000003d89efd8 is pointing into the stack for thread: 0x000000003add3800
RSI=0x00000000f812a32e is an unknown value
RDI=0x0000000000000000 is an unknown value
R8 =0x00007ffd64420000 is an unknown value
R9 =0x000000003d89eff8 is pointing into the stack for thread: 0x000000003add3800
R10=0x0000000002e6dfa0 is at code_begin+1632 in an Interpreter codelet
method entry point (kind = native) [0x0000000002e6d940, 0x0000000002e6e960] 4128 bytes
R11=0x0000000054099530 is an unknown value
R12=0x0000000000000000 is an unknown value
R13={method} {0x000000003a917bb0} 'findSymbol' '(JLjava/lang/String;)J' in 'com/sun/jna/NativeLibrary'
R14=0x000000003d89f008 is pointing into the stack for thread: 0x000000003add3800
R15=0x000000003add3800 is a thread
……
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.sun.jna.NativeLibrary.findSymbol(JLjava/lang/String;)J+0
j com.sun.jna.NativeLibrary.getSymbolAddress(Ljava/lang/String;)J+24
j com.sun.jna.Function.(Lcom/sun/jna/NativeLibrary;Ljava/lang/String;I)V+41
j com.sun.jna.NativeLibrary.getFunction(Ljava/lang/String;I)Lcom/sun/jna/Function;+48
j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+231
j com.sun.proxy.$Proxy194.NET_DVR_CloseAlarmChan_V30(I)Z+19
j com.cgnpc.device.register.RegisterDevice.destroy()V+69
j org.springframework.beans.factory.support.DisposableBeanAdapter.destroy()V+141
j org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(Ljava/lang/String;Lorg/springframework/beans/factory/DisposableBean;)V+133
j org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(Ljava/lang/String;)V+41
j org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(Ljava/lang/String;)V+2
j org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons()V+105
j org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons()V+1
j org.springframework.context.support.AbstractApplicationContext.destroyBeans()V+4
j org.springframework.context.support.AbstractApplicationContext.doClose()V+127
j org.springframework.context.support.AbstractApplicationContext$2.run()V+14
v ~StubRoutines::call_stub
那你得先把执行失败的情形展现在帖子里,不然别人没法判断。