Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaWebStart:如何根据客户机可以管理的内容改变jnlp中的堆内存请求?_Java_Memory_Heap_Jnlp_Java Web Start - Fatal编程技术网

JavaWebStart:如何根据客户机可以管理的内容改变jnlp中的堆内存请求?

JavaWebStart:如何根据客户机可以管理的内容改变jnlp中的堆内存请求?,java,memory,heap,jnlp,java-web-start,Java,Memory,Heap,Jnlp,Java Web Start,因此-jnlp文件可以请求堆内存大小: <j2se version="1.6+" href="blah" max-heap-size="1g"/> 对于基于web的应用程序来说,1G的内存是一个很大的要求,不是吗,但遗憾的是,用户可能想用我的应用程序执行的一些任务(不是全部)需要这么多内存 问题是,如果您请求的最大堆大小大于jvm希望允许的最大堆大小,那么它将以静默方式失败。哎呀 我不知道的第一件事是jvm如何决定允许的最大堆大小。大概这取决于可用内存 假设是这种情况,是否有一

因此-jnlp文件可以请求堆内存大小:

<j2se version="1.6+" href="blah" max-heap-size="1g"/>

对于基于web的应用程序来说,1G的内存是一个很大的要求,不是吗,但遗憾的是,用户可能想用我的应用程序执行的一些任务(不是全部)需要这么多内存

问题是,如果您请求的最大堆大小大于jvm希望允许的最大堆大小,那么它将以静默方式失败。哎呀

我不知道的第一件事是jvm如何决定允许的最大堆大小。大概这取决于可用内存

假设是这种情况,是否有一种方法可以测试客户机上有多少可用内存,并且只请求一个较大的最大堆大小(如果它可以处理它)?能力较差的客户机可以使用较小的堆运行,并失去一些功能

。。。是否有一种方法可以测试客户机上有多少可用内存,并且只有在它能够处理的情况下才请求一个较大的最大堆大小

我不这么认为。(让服务器查询用户电脑的内存量可能是一个潜在的安全问题…)


我认为您最好能为用户提供多个不同堆大小的JNLP链接,并允许他们在其中进行选择。

谢谢,这就是我想做的。可惜jvm不能只设置更小的堆大小。。。我把我的请求当作不做或不死的请求。或者,允许在运行时更改java代码的最大堆大小。@SideshowBob-不幸的是,HotSpot JRE不支持这两个功能。