在bat文件中我有以下内容:
java -Ddatabase.host=127.0.0.1 -Xms128M -Xmx1024M com.temp.util.manual.serial.Assignment -folder C:\temp\ -destination C:\temp\out.csv
-folder
和-destination
参数应该被传递给被调用的Assignment类的main方法,但是它们被解释为VM Args。
我试着在params周围加上引号无济于事,搜索没有显示答案。
我收到以下错误:
Unrecognized option: -'destination'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Press any key to continue . . .
@echo off
setlocal EnableDelayedExpansion EnableExtensions
set FILETYPE=%~n0
set CLASSPATH=jar1.jar
set CLASSPATH=%CLASSPATH%;anotherjar.jar
echo %CLASSPATH%
java -DjobName=%FILETYPE% -Ddatabase.host=127.0.0.1 -Ddatabase.name=db1 -Ddatabase.username=user1 -Ddatabase.password=password1 -Xms128M -Xmx1024M com.temp.util.manual.serial.Assignment -folder C:\\temp\\ -destination C:\\temp\\out.csv
call Cleanup.bat
endlocal
答案 0 :(得分:2)
我认为你的问题更多地与传入变量有关。 删除 EnableDelayedExpansion EnableExtensions
答案 1 :(得分:0)
命令java
具有以下语法:
java [ options ] class [ arguments ]
java [ options ] -jar file.jar [ arguments ]
所以在你的情况下(类)似乎找不到类。可能是由于缺少类路径。
java -cp . ... com.temp.util.manual.serial.Assignment ...
最好不要依赖CLASSPATH变量,使用-jar
并依赖META-INF / MANIFEST.MF。