0

Windows で Minecraft サーバーをホストするための GUI を作成したいと思います。Minecraft サーバーは、.jar ファイルと .bat ファイルを使用して .jar ファイルを実行し、出力を読み取り、そこから入力を行います。

.jar ファイルを開き、出力を読み取り、それに入力を与える C++ プログラムを作成する方法は?

で試してみたのですが、「ソースファイルを読み込めませんでした」というエラーがexeclp#include <unistd.h>てしまいます(POSIXで作っているためだと思いますが、よくわかりません)。

どんな助けでも大歓迎です!

(また、ご存知のように、私はプログラミングと C++ に非常に慣れていません)

4

1 に答える 1

0

私はC#でこれを行うことができました。コードは次のとおりです (C++ コードは非常に似ていると思います)。

var arguments = "-jar -Xms" + Settings.ServerStartInfo.InitialRam + "M -Xmx" +
                            Settings.ServerStartInfo.MaximumRam + "M \"" + Settings.ServerStartInfo.FileName +
                            "\" -nojline" + Settings.ServerStartInfo.Arguments; 

var processStartInfo = new ProcessStartInfo
{
    FileName = "javaw.exe",
    Arguments = arguments,
    CreateNoWindow = true,
    ErrorDialog = false,
    RedirectStandardOutput = true,
    RedirectStandardError = true,
    RedirectStandardInput = true,
    StandardOutputEncoding = Encoding.UTF8,
    StandardErrorEncoding = Encoding.UTF8,
    UseShellExecute = false,
    WorkingDirectory = Settings.ServerStartInfo.WorkingDirectory
};

Process = new Process { StartInfo = processStartInfo };
Process.OutputDataReceived += ServerOutputHandler.ServerOutputReceived;
Process.ErrorDataReceived += ServerOutputHandler.ServerOutputReceived;
Process.Start();

Process.BeginOutputReadLine();
Process.BeginErrorReadLine();
Process.WaitForExit();

Process.Start();

詳細については、こちらをご覧ください: https://servercrafter.codeplex.com/SourceControl/latest#ServerCrafter/ServerCrafter.ClassLibrary/ClassLibrary/Server/Server.cs

于 2014-01-04T17:32:25.843 に答える