通过C++实例化时JVM最大堆大小参数不起作用

4
我正在通过C ++创建JVM实例。我在实例化时传递了几个VM参数。但至少一个最大堆大小参数没有显示任何差异。无论我为它提供的参数是什么,最大堆大小始终显示为65 536kB。
以下是代码。
    jvm=NULL;
env=NULL;
long result;
char *pathname=(char*)malloc(1024);
strcpy(pathname,"-Djava.class.path=");  
strcat(pathname,"/*class path*/");


vm_args.version= 0x00010006;  
    vm_args.ignoreUnrecognized=JNI_TRUE;
options[0].optionString=pathname;
options[1].optionString="-Xms512M";
options[2].optionString="-Xmx1024M";
vm_args.options=options;
vm_args.nOptions=3;

任何建议。提前致谢。

如果问题不够清晰,请随时提问。谢谢。 - Jafar Ali
类路径选项的可能值未正确设置...尝试调整选项顺序。 - Andriy Plokhotnyuk
1个回答

0

不确定这是否重要,但在我的代码中,我在末尾使用小写字母“m”:

-Xmx1024m

而不是

-Xmx1024M

这是你的代码和我们使用的代码之间最明显的区别...


你确认了吗,用这种方式实例化时堆大小是否会增加。我的意思是从C++实例化时。 - Jafar Ali
此时,对我来说,这感觉像是一个简单的问题,比如数组没有正确初始化(或者选项数组大小不对??)。类似这样的问题。建议您发布更多的代码 - 将其剥离到能够重新创建问题的绝对最小代码。我们经常以这种方式初始化JNI而没有任何问题,因此这不太可能是JVM的问题。 - Kevin Day

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接