我有一个包含java调用的Windows .bat文件。 java调用看起来像这样:
java -Dfile.encoding=Cp437 -jar name.jar -p "path\filename.prop"
filename.prop文件包含java程序使用的几个参数。 我直接从命令窗口运行这个.bat文件。
只要我允许它将日志输出到命令窗口,.bat文件就可以正常工作。但是,如果我添加日志的重定向,则会导致错误,表明它没有查找-p参数中定义的文件,因为它应该是。
所以:
myfile.bat
- 有效,但将日志信息写入命令窗口
myfile.bat > filename.log
- 立即停止并将错误写入命令窗口。
myfile.bat > filename.log 2>&1
- 立即停止并将错误写入日志文件。
产生的错误是:
java.io.FileNotFoundException:path \ filename.prop(系统找不到指定的路径)
其中path \ filename.prop不是.bat文件中-p参数的值。 (注意:我没有编写正在调用的java程序。我怀疑我在错误中看到的path \ filename.prop的值可能是从测试时间在程序中硬编码的,但我不是一定。)
如何重定向日志输出会对.bat文件中java调用读取的参数产生影响?它是否以某种方式阻止了来自"看到" -p参数?我错过了什么?
我需要更改以允许java调用在.bat文件中使用-p参数吗?