c# - 从 C# 调用 Java 代码

标签 c# java class parameters

我被一件事困住了,无法解决。我有部分代码,它像魅力一样从命令行执行。工作没有任何问题。

所以,我将尝试从 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);

顺便说一句 - 您可以使用 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""";

关于c# - 从 C# 调用 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10104886/

相关文章:

c# - 在 WPF 图像控件上设置背景图像?

c# - 传递无效主机名时 NTP 查询需要很长时间

java - 如何让 openGL 渲染彩色四边形?

java - Base64 输入流转字符串

c++ - 运算符 '=' must be a nonstatic member function错误

c# - FormattedText.FormttedText 已过时。使用 PixelsPerDip 覆盖

java - 正则表达式检测字符是否重复超过三次

c++ - 模板类构造函数

Python Django 如何在views.py 中获取登录用户的值?

c# - 获取已实现的泛型类的泛型方法定义