通过Java代码运行jar
所以,我在这里做了一些研究,但是这个东西显然不能工作/运行JAR文件通过Java代码运行jar,java,jar,Java,Jar,所以,我在这里做了一些研究,但是这个东西显然不能工作/运行JAR文件 您需要提供Java可执行文件的完整路径,而不仅仅是“Java” 假设所讨论的程序表现良好,您可以使用反射在jar的主类上调用main方法,而无需启动新的JVM 注意jar路径中的空格。这意味着,在您构建的命令中,它将被视为两个参数: final String dir = "C:\\Users\\theo\\Desktop\\1.6 test\\craftbukkit.jar"; Process proc = Runtime.g
main
方法,而无需启动新的JVM注意jar路径中的空格。这意味着,在您构建的命令中,它将被视为两个参数:
final String dir = "C:\\Users\\theo\\Desktop\\1.6 test\\craftbukkit.jar";
Process proc = Runtime.getRuntime()
.exec("java -Xmx1024M -jar "+ dir +" -o true PAUSE");
尝试引用路径以生成如下命令:
java -Xmx1024M -jar C:\Users\theo\Desktop\1.6 test\craftbukkit.jar -o true PAUSE
运行JAR文件?您可以在主方法为入口点的位置运行程序。读取(并实现)的所有建议。这可能会解决问题。如果没有,它应该提供更多关于失败原因的信息。然后忽略它引用的
exec
,并使用ProcessBuilder
构建流程。还可以将字符串arg
分解为字符串[]args
,以说明本身包含空格的参数。完整路径完成。我想要后台执行,因为我收到了iputstream。现在它说无法访问JARFILE您可能必须保护路径中的空间(现在,它看起来像C:\\Users\\theo\\Desktop\\1.6
和test\\craftbukkit.jar
是独立的参数)。也修复了这个问题。现在我甚至没有收到任何错误,也没有收到任何反馈:)好吧,我也试过这么做,重命名了文件夹之类的东西。似乎工作,但我没有收到任何信号,它正在工作,只有鼠标上的加载标志
java -Xmx1024M -jar "C:\Users\theo\Desktop\1.6 test\craftbukkit.jar" -o true PAUSE