Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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 Netbeans IDE外部的堆空间问题_Java_Ide_Out Of Memory_Java 8_Netbeans 8 - Fatal编程技术网

Java Netbeans IDE外部的堆空间问题

Java Netbeans IDE外部的堆空间问题,java,ide,out-of-memory,java-8,netbeans-8,Java,Ide,Out Of Memory,Java 8,Netbeans 8,编辑:我最后做了两个建议答案的组合,并因此回答了我自己的问题,这是下面被接受的一个,希望这有助于其他人在未来 我在Windows7上运行32位Java1.8.040 我在Netbeans 8.0中创建了一个程序,并将VM选项调整为-Xms512m-Xmx2048m 该程序在Netbeans IDE环境中运行得非常好,但是在尝试在Netbeans之外运行该程序时,我遇到了一个堆空间内存不足错误 编辑:我通过Netbeans在编译时为项目创建的.jar文件启动程序 我已经转到Java控制面板,并将相

编辑:我最后做了两个建议答案的组合,并因此回答了我自己的问题,这是下面被接受的一个,希望这有助于其他人在未来

我在Windows7上运行32位Java1.8.040

我在Netbeans 8.0中创建了一个程序,并将VM选项调整为-Xms512m-Xmx2048m

该程序在Netbeans IDE环境中运行得非常好,但是在尝试在Netbeans之外运行该程序时,我遇到了一个堆空间内存不足错误

编辑:我通过Netbeans在编译时为项目创建的.jar文件启动程序

我已经转到Java控制面板,并将相同的“-Xms512m-Xmx2048m”信息应用于运行时参数。我仍然遇到堆空间内存不足错误


有什么建议吗?我能从这里走到哪里?我是否错过了确保Netbeans之外的运行时环境中有足够内存的步骤?

在Netbeans中使用的VM选项也可以在命令行上使用,即

java -Xms512m -Xmx2048m  -jar yourprg.jar

还有更多可用的选项。

因为您正在构建一个独立的JAR文件,所以似乎没有一种干净的方法将这些选项包含在您的JAR中(有些人已经询问过了,但没有明确的答案)。在您的情况下,我的解决方案通常是提供一个带有正确的-Xms和-Xmx参数的小shell脚本,以及我的JAR文件。

我结合了这两个答案。最后,我不得不使用引号中包含的完全限定名来执行命令,因为其他人将使用此程序,所以我能够创建一个.bat文件来执行该命令。 最后一个.bat文件的结果如下:

java -Xms512m -Xmx2048m -jar "T:\Netbeans Projects\DataLoader\dist\DataLoader.jar"

感谢Jorge_B和Sanj的帮助!希望这将有助于其他人在未来

在运行应用程序时,是否尝试将VM选项直接传递给JVM?否,我的代码中没有显式传递任何VM选项。我一直在努力寻找一种明确的方法来实现这一点,这不是通过命令行实现的。请告诉我们,您在Netbeans之外启动应用程序的确切方式好吗?这是一个shell脚本,还是一个自动可执行的JAR文件,还是其他任何方式?@Jorge_B编辑后将其添加到主要问题中,供其他人查看。现在,我只是通过Netbeans在编译代码时在dist文件夹中创建的.jar文件启动程序。我曾尝试使用此命令行选项,但它不适用于我,我的.jar存储在网络计算机上。我不需要在本地机器上安装.jar吗?编辑:甚至在我的桌面上放置了.jar和lib文件夹,我收到了一条“错误:无法访问jarfile”消息。这些jvm选项适用于在本地机器上运行的jvm。jar的来源不重要,因为它将加载、运行并使用JVM所在的内存。除非我们遗漏了一些明显的东西,并且您正在远程登录/ssh到一个远程盒子中,并从那里运行JVM。。。不,据我所知,我不会做那样的事。我们必须将所有项目保持在一个共享的本地服务器上,但我们不做任何特殊的操作来访问它们,没有SSH或任何通过驱动器号连接的东西。我不必为.jar或类似的文件创建完全限定的地址?当你说“shell脚本”时,你是指.bat文件吗?是的,这是我的想法。这适合你的问题吗?这取决于您将软件部署到何处(您没有理由不能编写.bat和标准.sh版本的启动器,以防万一),我将试一试并报告。