gpt4 book ai didi

java - JNI : Client jvm. dll 与服务器 jvm.dll

转载 作者:行者123 更新时间:2023-12-01 14:46:48 24 4
gpt4 key购买 nike

我们有这个 native 应用程序,它在其进程中启动 jvm,并使用 JNI 调用 Java 代码。

我们将 jvm.dll 的位置放在路径中(这是在 Windows 上),以便可以加载它,并且我们注意到,当我们使用“client”目录时,一切正常,但是在编译时作为 32 位,当我们使用“服务器”目录时,JNI_CreateJavaVM() 失败,返回值为 -4。

据我所知,客户端和服务器版本的 JVM 都应该可以工作,那么这是怎么回事?

最佳答案

看起来很可疑,您正在创建一个无法启动的 JVM,因为它被配置为使用比可用内存更多的内存。

#define     JNI_OK   0
#define JNI_ERR (-1)
#define JNI_EDETACHED (-2)
#define JNI_EVERSION (-3)
#define JNI_ENOMEM (-4)
#define JNI_EEXIST (-5)
#define JNI_EINVAL (-6)

当然,还可以有其他解释;但是,您是否会检查系统的可用内存、配置参数和最大进程大小(如果您使用的是旧版本的 Windows)。我认为这可能是您遇到的问题。

它还会解释“可以工作但现在不工作”的问题,因为可能在发生故障时,系统没有足够的可用内存来提交给 JVM(JVM 会预先获取其所有内存) ,在运行之前)。也许您的服务器版本要求“刚好足够”来突破限制。

关于java - JNI : Client jvm. dll 与服务器 jvm.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15368090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com