嵌入到C中的JVM不会出现在正在运行的程序中

时间:2015-06-04 10:25:10

标签: java jvm java-native-interface

我有一个C程序(在Solaris SPARC中工作),它正在创建一个JVM并通过JNI调用Java应用程序。

创建了JVM并且java程序按预期工作,但我没有看到带有ps -ef | grep java命令的java进程。

关于可能是什么原因的任何想法?

1 个答案:

答案 0 :(得分:0)

@apangin和@ the8472都是正确的,你不会在任何地方找到java进程,使用JNI_CreateJavaVM在你的进程中嵌入JVM功能。

我会尝试通过参考文档来证明这一点(JNI记录很少,但我会尝试)。

来自JNI Specification

  

创建VM

     

JNI_CreateJavaVM()函数加载并初始化Java VM并返回指向JNI接口指针的指针。调用JNI_CreateJavaVM() 的线程被视为主线程。

以下几行:

  

附加的线程应该有足够的堆栈空间来执行合理的工作量。

这确认了JVM实例位于调用JNI的createJavaVM方法的相同上下文中,因此没有外部专用进程。