简体   繁体   中英

Unable to redirect output of “java” command to text file

I am trying the following in my cmd prompt:

java>temp.txt

temp.txt is getting created with no content in it. "java" command output is displayed in console itself without getting redirecting to temp.txt

But if i do the following:

dir> temp.txt

output of dir command is getting redirected to temp file.

Why is the output of "java" command not getting redirected to the text file??

The > is for sending the standard output (stdout) to a given location. But the output printed with java command is coming in standard error (stderr) output.

To redirect stderr, you can use the below syntax. This will redirect standard outputs to stdout.txt and standard errors to stderr.txt

java > stdout.txt 2> stderr.txt

Alternatively you can send both standard output and standard error to same file using below command (without mentioning the filenames twice).

java > output.txt 2>&1

2> means redirect the stderr, &1 means to where the stdout is redirected which is output.txt . So this command will redirect stdout to output.txt and stderr to where the stdout is redirected (which is output.txt iteself).

You can also ignore the stderr by sending it to say, /dev/null (only linux)

java > out.txt 2> /dev/null

Because when you run java without arguments, the output is redirected to stderr instead of stdout . So you should do:

java 2>temp.txt

2 tells the command to redirect stderr to the file temp.txt

More details on http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

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