Home : ทำไมเราไม่สามารถเขียนผลลัพท์จากคำสั่ง java -version ลงไฟล์ได้?
Q10099 - PRB: ทำไมเราไม่สามารถเขียนผลลัพท์จากคำสั่ง java -version ลงไฟล์ได้?

Problem

ทำไมเมื่อเราพยายามที่จะ redirect ผลลัพท์ที่ได้จากคำสั่ง java -version ลงไฟล์ โดยใช้คำสั่ง java -version > version.txt แล้วปรากฏว่าไม่มีข้อมูลอะไรอยู่ในไฟล์ version.txt ที่ถูกสร้างขึ้นเลย

Cause

ที่เป็นแบบนี้ก็เพราะว่าเพราะว่าคำสั่ง java -version แสดงผลออกทาง standard error ไม่ใช่ standard out  ตัวเครื่องหมาย '>' จะใช้ redirect ได้เฉพาะ output ที่ออกมาทาง standard out เท่านั้น ในกรณีนี้เราต้องใช้ '2>' เพื่อ redirect output ที่ส่งมาทาง standard error แทน

Note: ต้องเข้าใจก่อนว่าโดยปรกติแล้ว input และ output ของระบบจะมีอยู่สามอย่างคือ standard input, standard output และ standard error  ตัวแรก standard input ก็คือ ข้อมูลที่ป้อนผ่าน keyboard นั่นเอง standard output คือแสดงผลออกทางหน้าจอ (ในการทำงานปรกติ) ส่วน standard error คือแสดงผลออกทางหน้าจอเช่นเดียวกัน แต่ต่างตรงที่ไว้แสดงข้อความกรณีที่มีข้อผิดพลาดเกิดขึ้น การที่มีการแยกกันระหว่าง standard outupt และ standard error ทำให้เราสามารถเลือกที่จะจัดการกับข้อมูลที่ส่งออกมาได้ อย่างเช่น ถ้าเป็นข้อความแสดงการทำงานปรกติก็เก็บไว้ในไฟล์หนึ่ง แต่ถ้าเป็นข้อผิดพลาดก็เก็บไวอีกไฟล์ เป็นต้น

Solution

ในกรณีนี้เนื่องจาก java -version แสดงผลออกทาง standard error ถ้าเราต้องการ redirect ลงไฟล์ ก็ต้องใช้ '2>' แทน เวลาพิมพ์คำสั่งใน console (อย่าง dos prompt) ดังนี้

java -version 2> version.txt

Related Articles
No Related Articles Available.

Article Attachments
No Attachments Available.

Related External Links
เกี่ยวกับ standard out, standard error
Help us improve this article...
What did you think of this article?

poor 
1
2
3
4
5
6
7
8
9
10

 excellent
Tell us why you rated the content this way. (optional)
 
Approved Comments...
ขอบคุณครับ... Approved: 12/14/2009 9:48 AM
Created on 7/18/2009 12:02 PM.
Last Modified on 7/18/2009 12:05 PM.
Last Modified by Administrator.
Skill Level: Beginner.
Article has been viewed 518 times.
Rated 9 out of 10 based on 1 vote.
Print Article
Email Article