0

我正在尝试为服务器创建一个 GUI,但是当我启动服务器时它抱怨它没有足够的内存,当我将它添加-Xmx1024M -Xms1024M到启动命令时,JAVA 说它不能保留足够的空间,但是怎么做我在启动之前为进程设置了保留的 RAM?

    TekkitServer = new Process();
    ProcessStartInfo TekkitStarter = new ProcessStartInfo(@"java", @"-Xmx1024M -Xms1024M -jar ServerFiles\Tekkit.jar nogui");
    TekkitStarter.UseShellExecute = false;
    TekkitStarter.RedirectStandardError = true;
    TekkitStarter.RedirectStandardOutput = true;
    TekkitStarter.CreateNoWindow = true;
    TekkitServer.StartInfo = TekkitStarter;
    TekkitServer.OutputDataReceived += new DataReceivedEventHandler(TekkitServer_OutputDataReceived);
    TekkitServer.ErrorDataReceived += new DataReceivedEventHandler(TekkitServer_ErrorDataReceived);
    TekkitServer.EnableRaisingEvents = true;
    TekkitServer.Start();
    InitializeComponent();
    TekkitServer.BeginErrorReadLine();
    TekkitServer.BeginOutputReadLine();

这是我现在得到的代码

更新:

当我java -Xmx1024M -Xms1024M -jar ServerFiles\Tekkit.jar nogui在 CMD 中运行时,它运行良好并且不会哭泣

谢谢

4

2 回答 2

0

应用程序从可用系统内存中自动分配操作所需的内存。您很可能正在使用无限递归(这会导致 stackoverflow 异常,因为堆栈很小)或资源没有得到有效处理。您应该检查您的代码是否存在这些问题。

于 2012-08-11T15:10:14.630 回答
0

好的,我通过将我的 jre7 32 位升级到 jre7 64 位来修复它,但现在输入不起作用但问题已经解决了

于 2012-08-11T21:30:06.063 回答