简体   繁体   中英

Running jar file with argument from batch script windows 8

I am trying to run my .jar file with arguments through batch script in Windows 8.

My batch file (run.bat) has the following content:

set d=2015-07-07
java -jar my.jar %d%

But when I execute run.bat I get the following:

C:\Users\user\Desktop\Test>run.bat

C:\Users\user\Desktop\Test>set d=2015-07-07

C:\Users\user\Desktop\Test>java -jar my.jar

C:\Users\user\Desktop\Test>2015-07-07
'2015-07-07' is not recognized as an internal or external command,
operable program or batch file.

How to execute the whole command together with arguments?

When I run it without batch script through command line then it works:

C:\Users\user\Desktop\Test>java -jar my.jar 2015-07-07
C:\Users\user\Desktop\Test>

What I am doing wrong in a batch script?

Use batch code

@echo off
set "DateOption=2015-07-07"
java.exe -jar my.jar %DateOption%
set "DateOption="

or perhaps even better

@echo off
set "DateOption=2015-07-07"
"%JAVA_HOME%\bin\java.exe" -jar my.jar %DateOption%
set "DateOption="

According to commands output by cmd.exe on running your batch file, it looks like there is a character between my.jar and %d% in second line or between = and 2015-07-07 in first line being interpreted as newline by cmd.exe . It could be a single carriage return or a single line-feed. And a NULL (byte with value 0) is interpreted by cmd.exe as end of string which means also end of line.

Batch files should have DOS/Windows line terminators, ie carriage return + line-feed. A line-feed only (UNIX) or carriage return only (old MAC) is not good for batch files.

And batch files must be ASCII/ANSI (OEM) encoded files, ie 1 byte per character. Make sure not having UTF-8 or Unicode (UTF-16 Little/Big Endian) selected in the used text editor on using command Save As to save the batch file. Many text editors use by default nowadays UTF-8 as encoding which cmd.exe does not support.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM