Nếu đầu vào tương tác, tức là từ bảng điều khiển, tôi muốn in dấu nhắc lệnh, ví dụ: ">"Có cách nào để xác định xem Java System.in có "tương tác" không?
Nhưng nếu nó được chuyển hướng, ví dụ: từ một tập tin, sau đó tôi không muốn nhắc.
System.in là một InputStream trừu tượng không có bất kỳ phương pháp nào cho việc này.
Có thể bạn có thể sử dụng instanceof nếu loại bê tông khác?
Đồng thời, nếu System.out được chuyển hướng đến một tập tin tôi cũng không muốn nhắc
Đối với một giải pháp Linux cụ thể sử dụng JNI, xem [ở đây] (http://stackoverflow.com/a/18371202/446591). Bạn chỉ cần thay đổi 'fileno (stderr)' thành 'fileno (stdin)'. –
bản sao có thể có của [Làm cách nào tôi có thể kiểm tra xem luồng đầu vào/đầu ra của chương trình Java có được kết nối với thiết bị đầu cuối không?] (Http://stackoverflow.com/questions/1403772/how-can-i-check-if-a-java -Chương trình-đầu vào-đầu ra-suối-được-kết nối-to-a-hạn) –