在开始之前为进程设置RAM

时间:2012-08-11 14:34:02

标签: c# .net ram

我正在尝试为服务器创建GUI, 但当我启动服务器时,它抱怨它没有足够的ram,当我将-Xmx1024M -Xms1024M添加到start命令时,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();

这是我现在获得的代码

更新

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

由于

2 个答案:

答案 0 :(得分:0)

应用程序自动从可用系统内存中分配操作所需的内存。您最有可能使用无限递归(由于堆栈很小而导致堆栈溢出异常)或资源未有效处理。您应该检查代码是否存在这些问题。

答案 1 :(得分:0)

好吧,我通过将jre7 32bits升级到jre7 64bits来修复它是有道理但现在输入不起作用但问题解决了