我有一个控制台Java应用程序,它依赖于许多jar
软件包。因此,我将所有这些软件包放在一个批处理文件中。唯一的问题是,如果我从批处理文件启动Java应用程序,则无法从STDIN
中读取。我的意思是,我想处理一些在控制台上键入的用户输入,但是在应用程序中什么也没发生。
要从批处理中启动应用程序,请使用以下代码(基于此thread):
setlocal
for /F "tokens=*" %%a in ('more') do (
#%%a java -classpath ...
)
如果我只是从批处理中调用Java应用程序而没有FOR
循环,那么我也将无法访问STDIN
。
如果我直接从cmd启动应用程序,则可以毫无问题地从STDIN
读取内容。
This是我从STDIN
中读取的代码。
我真的很想使用批处理文件,因为Java应用程序的命令行很长。
是否有把STDIN
重定向到Java或至少重定向到文件的技巧?