使用ProcessBuilder在Java中运行minecraft.jar
我正在尝试用Java运行Minecraft.jar(游戏)。我尝试使用以下代码运行它:使用ProcessBuilder在Java中运行minecraft.jar,java,minecraft,processbuilder,Java,Minecraft,Processbuilder,我正在尝试用Java运行Minecraft.jar(游戏)。我尝试使用以下代码运行它: String LibsAndStuff = String.format( "%s/minecraft.jar:%s/lwjgl.jar:%s/lwjgl_util.jar:%s/jinput.jar", OSDetector.getMinecraftJarDiretoryFullPath(), OSDetector.getMinecraftJarDireto
String LibsAndStuff = String.format(
"%s/minecraft.jar:%s/lwjgl.jar:%s/lwjgl_util.jar:%s/jinput.jar",
OSDetector.getMinecraftJarDiretoryFullPath(),
OSDetector.getMinecraftJarDiretoryFullPath(),
OSDetector.getMinecraftJarDiretoryFullPath(),
OSDetector.getMinecraftJarDiretoryFullPath());
ProcessBuilder pb = new ProcessBuilder("java", "-Xmx2048M", "-Xms512M", "-cp",
LibsAndStuff, String.format("-Djava.library.path=%s/natives",
OSDetector.getMinecraftJarDiretoryFullPath()),
"net.minecraft.client.Minecraft");
pb.directory(new File(OSDetector.getMinecraftJarDiretoryFullPath()));
try {
Process p = pb.start();
} catch (IOException e1) {
e1.printStackTrace();
}
OSDetector.getMinecraftJarDiretoryFullPath()
返回路径为.minecraft的字符串(例如“/home/user/.minecraft”)。Eclipse控制台中没有显示任何内容。我不知道出了什么问题,因为在bash中启动的完全相同的命令工作正常
@编辑
C:\Users\ukasz\AppData\Roaming\.minecraft\bin/minecraft.jar:C:\Users\ukasz\AppData\Roaming\.minecraft\bin/lwjgl.jar:C:\Users\ukasz\AppData\Roaming\.minecraft\bin/lwjgl\u util.jar:C:\Users\ukasz\AppData\Roaming\.minecraft\bin/jinput.jar
这就是那根绳子。我改变了/去了,但没用:你应该考虑从代码中删除那个诅咒词。关于主题:你能不能<代码> PrtLn\/Cord>你构建的类路径字符串?@ SkyDaI在一个编辑中进行了修改。@ XXAX每天我们都学习一些新的东西:只要在代码中的任何地方调用它一次,将其结果存储在一些引用中,如
String dir=OSDetector.getMinecraftJarDiretoryFullPath()
并在需要该结果的地方使用该引用,如String.format(“%s/minecraft.jar:%s/lwjgl.jar:%s/lwjgl\u util.jar:%s/jinput.jar”,dir,dir,dir,dir)
。