我有一个运行在单个进程中的C++框架,可以添加模块,我想加入一种加载JAR并调用其中特定预定义函数的模块。用户可以同时运行很多模块,这就引发了以下问题:
每个模块能否通过 JNI_CreateJavaVM() 创建独立的JVM,使它们彼此完全独立(但在同一个进程中)?还是Java内部依赖全局变量等会导致它们相互干扰?
每个模块能否通过 JNI_CreateJavaVM() 创建独立的JVM,使它们彼此完全独立(但在同一个进程中)?还是Java内部依赖全局变量等会导致它们相互干扰?
JNIEnv
。在一些非常古老的JVM实现中曾经支持创建多个VM,但现在不再支持。还有IBM的JDK 7 JNI文档:自JDK/JRE 1.2以来,在单个进程中创建多个VM不再受支持。
Java on IBM i仅支持在单个作业或进程中创建一个Java虚拟机(JVM)。
(假定IBM AIX JVM也适用同样的限制)
更详细的信息请参见此处。