我想使用JNI从Java调用一个C函数。在C函数中,我想创建一个JVM并调用一些Java对象。当我尝试创建JVM时,JNI_CreateJavaVM返回-1。
所以,我想知道是否可以做到这一点。编译C代码以创建一个.so文件(在linux中),然后Java代码调用.so文件中的函数。
任何执行Java->C->Java的示例都会很有用。
谢谢。
发布于 2011-03-24 04:37:40
不,不幸的是这不可能。每个进程只能有一个JVM,而且您已经在一个JVM进程中。
发布于 2011-03-24 04:42:04
我看不出Java-->C-->Java有什么意义。
如果可以从Java调用C,那么可以在C函数返回后从Java调用Java。
Excelsion xFunction是一个用于从Java调用C的简单而可靠的库。它处理那些奇怪的JNI东西,给你一个更简单的界面。
发布于 2011-03-24 04:44:57
为什么需要创建第二个JVM?您不能创建第二个JVM,但可以从C代码访问Java类。参见Accessing Java Objects。
https://stackoverflow.com/questions/5411271
复制相似问题