java运行jar,带有批处理文件中的多个参数
下面是一个批处理文件的片段,我试图在其中运行myProgram.jar
set /p _count="enter count: "
set /p _toc="enter TOC"
choice /N /C:TO /M "Select Type(T/O): "
if errorlevel ==1 set _type=T
if errorlevel ==2 set _type=O
choice /N /C:SF /M "Select status(S/F): "
if errorlevel ==1 set _status=T
if errorlevel ==2 set _status=O
java -jar dir/myProgram.jar %_count% %_type% %_status% %_toc%
批处理文件执行带有四个参数的java -jar
命令,即_count
、_type
、_status
和_toc
在java中,我只得到_count
和_toc
的值
问题是剩下的两个参数被作为null
值传递,因此每次运行程序时我都要面对NullPointerException
# 1 楼答案
tl;博士
你的错误无法重现,我很确定这会导致一个简单的印刷错误,或者在你的Java应用程序中,你没有向我们展示
为了重现你的行为,我做了以下几点:
一,。创建一个简单的Java应用程序,将
args
写入控制台:二,。在Windows 10上使用
jdk1.8.0_91
编译它三,。执行测试。用上面的代码击球:(只针对你编辑问题的情况)
通过输入:
5, 6, T, F
它给出了以下输出:这意味着-IMHO-你的错误在于你的java代码获取
args
,这个NullPointerException
是由System.Console()
而不是args[n]
抛出的,或者你发布的批处理代码并不是在你的计算机上执行的总而言之:如果批处理使用4个参数调用命令行(就像示例代码那样),
args
有4个参数