我用C调用java程序出现如下错误请给指点下: 我初始化和调用java的函数写在一个java.c的程序里面,main函数写在test.c里面。有2中情况
1.我吧java.c编译成java.o test.c编译成test.o在链接生成可执行程序,程序能正常运行
2.我吧java.c编译成libjava.sl 在和test.c编译生成可执行程序,程序能正确编译成可执行文件,但是运行时产生了core文件
makefile如下:
all:libjava java
libjava:java.c
cc -g +DA2.0W $(INCLDIR) -L$(LIBDIR) -ljvm -lpthread -b -o libjava.sl $?
java: test.o
@echo "Compiling $@..."
cc -g +DA2.0W -o $@ $? -L$(LIBDIR) -ljvm -lpthread -L/home/tsapp/easylink/test -ljava
2中情况的代码完全没有任何变化。有人知道C调java的给指点下是什么问题?我用的是HP-UX PA-RISC2.0
感谢你花时间回答我的提问,
C调用java时使用JNI的问题!急。。。
java程序有两种方式一种是jar包,一种是class. 运行jar,java -jar XXX.jar运行的时候,java.exe调用GetMainClassName函数,该函数先获得JNIEnv实例然后调用java类java.util.jar.JarFileJNIEnv中方法getManifest()并从返回的Manifest对象中取getAttributes("Main-Class")的值即jar包中文件:META-INF\/MANIF...
Java 运行时JNI问题?
1、在执行java的时候,要输入完整的包名+类名。否则在以后的测试调用过程中会发生java.lang.UnsatisfiedLinkError这个异常。2、错误的详细信息。3、CLASSPATH、PATH。4、写入程序出现问题 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,...
请教JNI编程中C调用Java实现中NullPointerException问题
void main() { LoadLibrary("C:\\\\Program Files\\\\Java\\jre1.5.0\\\\bin\\\\client\\\\jvm.dll"); \/\/ 动态调用dll JavaVM *jvm;JNIEnv *env;JavaVMInitArgs vm_args;JavaVMOption options[3];options[0].optionString = "-Djava.compiler=NONE";options[1].optionString = "-Djava.classpath=...
jni异常怎么解决?
在探讨JNI异常的解决方法之前,先要理解JNI(Java Native Interface)是Java与C\/C++程序间交互的接口。当使用JNI调用Java函数时,可能出现异常情况,通常涉及版本不兼容、内存管理不当、资源泄露或逻辑错误等。针对版本不兼容的问题,关键在于确认调用方与被调用方使用的JNI版本一致。在JNI函数中,检查参数var...
jni出现错误是什么意思?
jni错误可能是由于本地程序接口定义和Java程序接口定义不一致导致的。其他常见的原因包括本地程序库缺失、不正确的参数传递、内存泄漏以及线程问题。当出现jni错误时,需要对错误进行分析,追踪出问题来源,并及时解决问题,以避免影响程序正常运行。解决jni错误通常需要开发人员具备一定的jni编程能力,需要对jni...
如何通过native在java程序使用c代码
在Java代码中创建JNI调用类.使用JDK的javah命令生成c的头文件。将作成的头文件include到c工程实现头文件中定义的接口。c工程编译成dll,导入到java工程\/ 运行确认。
java 利用jni调用dll出错!头都大了,真是郁闷,老是报错找不到native...
没用过jni, 基本上都是jna解决的 不过稍微搜了一下, 看到这句 在这里有必要多句嘴,在执行javah的时候,要输入完整的包名+类名。否则在以后的测试调用过程中会发生java.lang.UnsatisfiedLinkError这个异常。
这个“java错误提示”什么意思
java调用c的程序的时候需要JNI运行环境,但是没有找到运行环境就报这个错了 AGENT_ERROR_NO_JNI_ENV 以下引用他人blog 错误:ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2JDWP exit error AGENT_ERROR_NO_JNI_ENV(183): [..\/..\/..\/src\/share\/back\/...
在java本地方法调用中,jni.h这个文件起到的作用是什么?它和jniEvn...
本地方法调用就是 Java Native Interface(JNI),JNI最终的目的是在Java端调用本地系统的方法,Java之所以跨平台是因为JVM的设计是基于堆栈的,而像C、C++是基于寄存器的,寄存器应该懂吧,每个硬件的寄存器都不相同。JAVA class类运行在JVM中,即在堆栈(逻辑的数据结构)中,这个堆栈的数据结构都一样,...
如何从使用 JNI Java 调用本机 代码
1. JNI的目的是使java方法中能够调用c实现的一些函数,比如以下的java类,就需要调用一个本地函数testjni(一般声明为private native类型),首先需要创建文件weiqiong.java,内容如下:class weiqiong { static { System.loadLibrary("testjni");\/\/载入静态库,test函数在其中实现 } private native ...