繁体   English   中英

从C#调用Java代码

[英]Call Java code from C#

我坚持一件事我无法解决。 我有一部分代码,像魅力一样从命令行执行。 运作没有任何问题。

因此,我将尝试从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();

但是,什么也没有发生。 我做错什么了吗? 谢谢你的帮助!

使用Environment.ExpandEnvironmentVariables扩展Arguments的环境变量。

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""";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM