Si la entrada es interactiva, es decir, desde la consola, quiero imprimir un símbolo del sistema, p. ">"¿Hay alguna forma de determinar si Java System.in es "interactivo"?
Pero si se redirige, p. de un archivo, entonces no quiero pedir.
System.in es un InputStream abstracto que no parece tener ningún método para esto.
¿Tal vez podría usar instanceof si el tipo de hormigón es diferente?
Además, si System.out se redirige a un archivo también no quiero incitar
Para una solución específica de Linux usando JNI, ver [aquí] (http://stackoverflow.com/a/18371202/446591). Solo necesitarías cambiar 'fileno (stderr)' a 'fileno (stdin)'. –
posible duplicado de [¿Cómo puedo verificar si las secuencias de entrada/salida de un programa Java están conectadas a un terminal?] (Http://stackoverflow.com/questions/1403772/how-can-i-check-if-a-java -programs-input-output-streams-are-connected-to-a-term) –