Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Java大文件上载引发Java.io.IOException:映射失败_Java_Spring_File Io - Fatal编程技术网

Java大文件上载引发Java.io.IOException:映射失败

Java大文件上载引发Java.io.IOException:映射失败,java,spring,file-io,Java,Spring,File Io,我正在使用Spring和Hibernate并尝试上载大文件,但当我尝试上载时 超过150 Mb时,它会生成如下错误 Caused by: java.lang.OutOfMemoryError: Map failed at sun.nio.ch.FileChannelImpl.map0(Native Method) at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:755) ... 157 more 我正在使用windows 64位操作

我正在使用Spring和Hibernate并尝试上载大文件,但当我尝试上载时 超过150 Mb时,它会生成如下错误

Caused by: java.lang.OutOfMemoryError: Map failed
at sun.nio.ch.FileChannelImpl.map0(Native Method)
at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:755)
... 157 more
我正在使用windows 64位操作系统。经过大量的谷歌搜索,我发现这是JDK中可用的bug。 有人能帮我解决这个问题吗


有人写过这个问题。但我不确定这是否是错误。如果出现错误,那么我如何解决它。这需要任何其他合适的解决方案。

增加JVM堆大小

-Xmx1024m

你能把做这件事的代码贴出来吗?我们无法帮助,除非我们看到代码实际试图做什么。谢谢,实际上代码不是我写的。我将liferay与spring和hibernate一起使用。在它里面,我使用it文档和媒体Portlet上传文件。无论您使用的是什么库,都是非常不明智的,使用内存映射文件来保存上传,并且操作系统不会出于任何原因将文件内存映射到超过某个大小。在这种情况下,不需要内存映射I/O。向图书馆供应商投诉,然后再找一个。我同意EJP。如果您查看FileChannelImpl.map0。。源代码:您将看到,只有在文件太大的情况下,JNU_throwoutoMemoryErrorEnv,Map failed才会发生。看看这个:@EJP:是的,我得到了你的建议,但是现在我的项目结束了,我不能改变我的liferay CMS。是否有其他方法执行此任务。我想说的是,这只是在我的平台上,而不是在所有平台上。这与liferay无关。但我的java Evn配置中存在问题。我尝试在antoher liferay中上载相同的文件,没有错误。是的,我这样做了,但它对我不起作用。我还检查了递增和递减。映射文件的内存不是来自Java堆。