2012-04-11 2 views
0

Я застрял на одной вещи, которую я не могу решить. У меня есть часть кода, которая выполняется из командной строки, как шарм. Работает без проблем.Вызвать Java-код с C#

Итак, я попытаюсь вызвать эту команду (то же самое) из C#.

Это код, который я запускаю из командной строки.

ява -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 \ туземцы" 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

Thanks! Работает отлично! – user1326400

Смежные вопросы