Launch jar from C#
本文关键字:from jar Launch | 更新日期: 2023-09-27 18:33:11
如何从 C# 应用程序启动 Java 应用程序?
我正在开发一个我的世界发射器。是否有从 C# 应用程序启动任何 jar 的通用方法?
您可以将 jar 文件作为新进程启动:
string appData = Environment.GetEnvironmentVariable("APPDATA");
Process.Start(@"java",
@"-Xms512m -Xmx1024m -cp """ + appData + @"'.minecraft'bin'*"" -Djava.library.path=""" + appData + @"'.minecraft'bin'natives"" net.minecraft.client.Minecraft");
这假设java
在您的PATH
中(默认情况下,在安装 java 时会发生这种情况(。如果没有,请使用 java 的绝对路径。
这是直接启动游戏 - 如果用户告诉您他们把它放在哪里,您可以使用 minecraft 启动器。在Windows上,这是一个exe,所以你可以直接启动它。
此外,APPDATA是窗口的变量。对于 linux,路径在 $HOME
或 ~/
中。此外,参数也不完全相同。假设您的用户将使用 Mono for linux(或苹果(运行您的应用程序。我没有 Mono 方便为您测试选项,但您可以使用
public static bool IsLinux
{
get
{
int p = (int) Environment.OSVersion.Platform;
return (p == 4) || (p == 6) || (p == 128);
}
}
帮助您选择正确的开始路径。上面的代码是在这里找到的。我注意到上面示例中的属性称为 IsLinux
,但 Mono 文档中的引用说6
适用于 Mac OS X。这让我相信这个属性实际上应该被称为IsUnix
(正如苹果狂热分子继续宣扬的情况一样,尽管苹果和Windows一样是Unix(。我手头没有Macware来测试这个,我把它留给学生。