java.lang.outofmemory 异常 jvm 堆大小不足

发布于 2024-10-17 20:53:09 字数 457 浏览 1 评论 0原文

我试图读取一个只有一行的文本文件。文件大小超过 50Mb。当我尝试使用以下代码读取它时,它给出了

java.lang.outofmemory异常jvm 堆大小不足

我将java堆内存更改为1GB。但它仍然给出了同样的例外。

设置JAVA_OPTS=-Xms1024m -Xmx1024m

我使用下面的代码片段来读取文件。

BufferedReader Filein1=new BufferedReader(新FileReader(新 文件(“C:\ABC\MsgStream.txt”))); s=Filein1.readLine();

有人可以告诉我如何克服这个问题吗?提前致谢。

I tried to read a text file which have only one line. File size is over 50Mb. When I tried to read it using the following code it gives

java.lang.outofmemory exception jvm
heap size insufficient

I change the java heap memory to 1GB . But still it gives the same exception.

set JAVA_OPTS=-Xms1024m -Xmx1024m

I use foollowing code pragment to read the file.

BufferedReader Filein1=new
BufferedReader(new FileReader( new
File( "C:\ABC\MsgStream.txt" )));
s=Filein1.readLine();

Can some one please tell me how to overcome this problem. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事随风而去 2024-10-24 20:53:09

JAVA_OPTS 环境变量仅受到某些应用程序的尊重(例如通常用于启动 Tomcat 的包装器脚本)。 java 命令不关心它。

您需要将选项放在 java 命令行上...类名之前;例如

java -Xms1024m -Xmx1024m ... some.pkg.MainClass ...

(1Gb 堆对于缓冲 50Mb 文件应该绰绰有余。)

The JAVA_OPTS environment variable is only respected by certain applications (for example the wrapper scripts that are typically used to launch Tomcat). The java command doesn't pay any attention to it.

You need to put the options on the java command line ... before the classname; e.g.

java -Xms1024m -Xmx1024m ... some.pkg.MainClass ...

(A 1Gb heap should be more than adequate for buffering a 50Mb file.)

灯角 2024-10-24 20:53:09

JAVA_OPTS 实际上在输出中运行吗?您可能需要实际将它们放在正在运行的命令行上,或者在其中包含 $JAVA_OPTS 。

Are JAVA_OPTS actually being run in the output? You may need to actually put them on the command line you're running, or include $JAVA_OPTS on it.

放手` 2024-10-24 20:53:09

这是 _JAVA_OPTIONS 不是 JAVA_OPTS

如果你有这样的课程

public class Test {
 public static void main(String args[]) {
   System.out.println("value : " + System.getProperty("foo"));
 }
}

,那么你应该得到

> set _JAVA_OPTIONS=-Dfoo=bar
> java Test
> value : bar

It's _JAVA_OPTIONS not JAVA_OPTS

If you have a class like

public class Test {
 public static void main(String args[]) {
   System.out.println("value : " + System.getProperty("foo"));
 }
}

then you should get

> set _JAVA_OPTIONS=-Dfoo=bar
> java Test
> value : bar
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文