我正在编写一个简单的批处理脚本来更快地执行游戏(用于开发环境目的),但是我似乎无法将相应的命令行参数传递给可执行文件:
@ECHO OFF
set USERNAME=Testing
set MCDIR=%APPDATA%/.minecraft/
set GAMEDIR=%MCDIR%/versions/1.7.5/
set NATIVES=%GAMEDIR%/natives/
java -client -Xmx512M -Xms512M ^
-Djava.library.path=%NATIVES% ^
-cp %GAMEDIR%/1.7.5.jar:^
%MCDIR%/libraries/java3d/vecmath/1.3.1/vecmath-1.3.1.jar:^
%MCDIR%/libraries/net/sf/trove4j/trove4j/3.0.3/trove4j-3.0.3.jar:^
##etc... lots of libs
%MCDIR%/libraries/org/lwjgl/lwjgl/lwjgl_util/2.9.1/lwjgl_util-2.9.1.jar:^
%MCDIR%/libraries/org/lwjgl/lwjgl/lwjgl-platform/2.9.1/lwjgl-platform-2.9.1-natives-windows.jar:^
%MCDIR%/libraries/net/java/jinput/jinput-platform/2.0.5/jinput-platform-2.0.5-natives-windows.jar:^
net.minecraft.client.main.Main --username=%USERNAME% --version 1.7.5 --gameDir %MCDIR% --assetsDir %MCDIR%/assets --userProperties {} --accessToken Offline
pause
然而,这个小脚本似乎在任何参数超越client.main.Main
的瞬间失败,有效地将其视为JVM参数而不是命令行程序参数。在使用-cp
而不是-jar
来调用java中的程序时,是否有不同的方法可以执行此操作?如果没有,我做错了什么?
答案 0 :(得分:1)
您的路径末尾(最后一个^
)和Main
类之间似乎没有空格,因此您的Main
类实际上是{{1}的一部分JVM参数。还没有类,所以-cp
仍然可以看到JVM args。
尝试在java
值的最后一部分和-cp
之后添加一个空格,以便在命令行中将net.minecraft.client.main.Main
值与您的类分开。