我有一个应用程序,在启动时使用以下命令请求特定数量的RAM。
java -Xms512m -Xmx985m -jar someJarfile.jar
这个命令在我拥有8.0GB内存的电脑上无法运行,因为它不能创建指定大小的对象堆。如果我将最大范围降低到700MB以下,就可以正常运行。更奇怪的是,即使只是简单地执行
java -Xmx768m -version
,当-Xmx
标志值超过700m时也会失败。我试图在我的电脑上使用Java 1.7Uu67 32位版(这就是jar文件构建的版本),甚至是更新的Java 1.7和Java 1.8版本。如果最大堆高于32位Java的约1.4GB限制,而我又使用了32位,则我会理解,但实际上并未超过该限制。是否存在某些配置参数或软件干扰导致此问题?对我来说,无法在拥有8.0GB内存的机器上分配700MB RAM没有任何意义。我还应该注意到,没有其他正在运行的进程占用所有内存。这是一个全新的Windows 7安装。