我正在尝试为服务器创建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
时,它运行正常并且不会哭泣
由于
答案 0 :(得分:0)
应用程序自动从可用系统内存中分配操作所需的内存。您最有可能使用无限递归(由于堆栈很小而导致堆栈溢出异常)或资源未有效处理。您应该检查代码是否存在这些问题。
答案 1 :(得分:0)
好吧,我通过将jre7 32bits升级到jre7 64bits来修复它是有道理但现在输入不起作用但问题解决了