2017-06-02 56 views
0

我有一个通过JNI启动JVM的C++进程。当JVM通过JNI启动时重新加载java类路径

我知道我无法在销毁它之后初始化JVM。 (Create JVM after destroying it)如果这可以以任何方式完成,则不存在任何问题,因为我可以提供新的类路径并再次创建JVM。因此,破坏后无法创建JVM,而是在整个C++过程中保持它。

但我需要在运行时动态更新Java类路径,因为新的Java文件是通过我的C++进程创建和编译的。

有没有办法在JVM启动时通过JNI重新加载Java类路径?

+0

如何使用JVM的子进程,你可以*销毁? – Holger

回答

1

使用JVM TI函数AddToBootstrapClassLoaderSearchAddToSystemClassLoaderSearch,可以在运行时添加新的类路径段。

+0

我明白了。因此,如果我通过一个单独的Java类调用这些函数,它将从C++获取类路径,它会更新JVM的权利? –

+0

@Will_Panda“通过单独的Java类”是什么意思?这些是C函数。 – apangin

+0

我误解了。好的谢谢。我会测试这个并批准答案。 –

相关问题