我正在编写一个程序,作为附带功能,启动 Minecraft。目前,以下在 Windows 上运行良好:
String osSeparator = ";";
String osSeparatorLast = ";";
Runtime.getRuntime().exec("java -Xms" + settings.MinimumMemory() + " -Xmx" + settings.MaximumMemory() + " -cp \"" + bP + "minecraft.jar" + osSeparator + bP + "jinput.jar" + osSeparator + bP + "lwjgl.jar" + osSeparator + bP + "lwjgl_util.jar" + osSeparatorLast + "\" -Djava.library.path=\"" + bP + "natives\" net.minecraft.client.Minecraft" + " " + username + " " + sessionID);
通过测试,我发现在OS X终端中手动输入的结果如下:
String osSeparator = ":";
String osSeparatorLast = "";
Runtime.getRuntime().exec(new String[] {"java", "-Xms" + settings.MinimumMemory(), "-Xmx" + settings.MaximumMemory(), "-cp \"" + bP + "minecraft.jar" + osSeparator + bP + "jinput.jar" + osSeparator + bP + "lwjgl.jar" + osSeparator + bP + "lwjgl_util.jar" + osSeparatorLast + "\"", "-Djava.library.path=\"" + bP + "natives\"", "net.minecraft.client.Minecraft", username, sessionID});
出于某种原因,上面的代码不会启动 Minecraft,但会获取字符串结果并将其复制/粘贴回终端。
这是怎么回事?