2012-04-11 14 views
0

私は解決できない1つのことに固執しています。私は魅力のようなコマンドラインから実行されるコードの一部を持っています。問題なく動作します。CのJavaコードを呼び出す

私はこのコマンドをC#から呼び出すことを試みます。

これは私がコマンドラインから実行しているコードです。

のjava -cp -Xincgc -Xmx1024m 「%APPDATA%.minecraft \ binに\のminecraft.jar;%APPDATA%.minecraft \ビン\のlwjgl.jar;%APPDATA%.minecraft \ビン\のlwjgl_util.jar ;%APPDATA%.minecraft \ビン\のjinput.jar」 -Djava.library.path = "%APPDATA%.minecraft \ビン\原住民" 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

Argumentsの環境変数を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); 

BTW - verbatim string literalを使用すると、その引数文字列をより読みやすくすることができます。

@"-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"""; 
+0

ありがとうございます!正常に動作します! – user1326400

関連する問題