0

解決できないことが1つあります。チャームのようにコマンドラインから実行されるコードの一部があります。問題なく動作します。

したがって、C#からこのコマンド(同じ)を呼び出そうとします。

これが、コマンドラインから実行するコードです。

java -Xincgc -Xmx1024m -cp "%APPDATA%.minecraft \ bin \ minecraft.jar;%APPDATA%.minecraft \ bin \ lwjgl.jar;%APPDATA%.minecraft \ bin \ lwjgl_util.jar;%APPDATA%.minecraft \ bin \ jinput.jar "-Djava.library.path ="%APPDATA%.minecraft \ bin \ natives "net.minecraft.client.Minecraft" NAME "

C#で取得しようとしている部分は次のようになります。

proc.StartInfo.FileName = "java";
proc.StartInfo.Arguments = "-Xincgc -Xmx1024m -cp \"%APPDATA%\\.minecraft\\bin\\minecraft.jar;%APPDATA%\\.minecraft\\bin\\lwjgl.jar;%APPDATA%\\.minecraft\\bin\\lwjgl_util.jar;%APPDATA%\\.minecraft\\bin\\jinput.jar\" -Djava.library.path=\"%APPDATA%\\.minecraft\\bin\\natives\" net.minecraft.client.Minecraft \"NAME\"";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.Start();

しかし、何も起こりません。私が間違っていることはありますか?助けてくれてありがとう!

4

1 に答える 1

4

Argumentsusingで環境変数を展開しEnvironment.ExpandEnvironmentVariablesます。

string args = "-Xincgc -Xmx1024m -cp \"%APPDATA%\\.minecraft\\bin\\minecraft.jar;%APPDATA%\\.minecraft\\bin\\lwjgl.jar;%APPDATA%\\.minecraft\\bin\\lwjgl_util.jar;%APPDATA%\\.minecraft\\bin\\jinput.jar\" -Djava.library.path=\"%APPDATA%\\.minecraft\\bin\\natives\" net.minecraft.client.Minecraft \"NAME\"";
proc.StartInfo.Arguments = Environment.ExpandEnvironmentVariables(args);

ところで-逐語的な文字列リテラルを使用して、その引数文字列を読みやすくすることができます。

@"-Xincgc -Xmx1024m -cp ""%APPDATA%\.minecraft\bin\minecraft.jar;%APPDATA%\.minecraft\bin\lwjgl.jar;%APPDATA%\.minecraft\bin\lwjgl_util.jar;%APPDATA%\.minecraft\bin\jinput.jar"" -Djava.library.path=""%APPDATA%\.minecraft\bin\natives"" net.minecraft.client.Minecraft ""NAME""";
于 2012-04-11T11:23:11.767 に答える