我有一个C程序(在Solaris SPARC中工作),它正在创建一个JVM并通过JNI调用Java应用程序。
创建了JVM并且java程序按预期工作,但我没有看到带有ps -ef | grep java
命令的java进程。
关于可能是什么原因的任何想法?
答案 0 :(得分:0)
@apangin和@ the8472都是正确的,你不会在任何地方找到java
进程,使用JNI_CreateJavaVM
在你的进程中嵌入JVM功能。
我会尝试通过参考文档来证明这一点(JNI记录很少,但我会尝试)。
创建VM
JNI_CreateJavaVM()
函数加载并初始化Java VM并返回指向JNI接口指针的指针。调用JNI_CreateJavaVM()
的线程被视为主线程。
以下几行:
附加的线程应该有足够的堆栈空间来执行合理的工作量。
这确认了JVM实例位于调用JNI的createJavaVM
方法的相同上下文中,因此没有外部专用进程。