2014-01-24 2 views
3

Я пытаюсь использовать Jansi Java Library для использования цвета в CMD/Console, и у меня возникла небольшая проблема. Когда я использую Jansi библиотеку и попытаться использовать для печати F ЗАЯВЛЕНИЕПочему «>>» не печатается в конце моего заявления printf?

System.out.printf("Hello young lad! What is thy " + RED + "name " + WHITE + "you were given at birth?\n>> "); 

«>>» не печатается в конце. Вместо этого Scanner вызывается и запрашивает мой ввод. Почему это происходит и есть ли способ сделать это так, чтобы «>>» и «Ввод сканера» отображались на одной строке?

import java.util.Scanner; 

import org.fusesource.jansi.AnsiConsole; 


public class Test { 
    public static void main(String[] args) { 
     AnsiConsole.systemInstall(); 

     String name; 
     Scanner scanner = new Scanner(System.in); 

     String BLACK = "\u001B[0;30m"; 
     String RED = "\u001B[0;31m"; 
     String GREEN = "\u001B[0;32m"; 
     String YELLOW = "\u001B[0;33m"; 
     String BLUE = "\u001B[0;34m"; 
     String MAGENTA = "\u001B[0;35m"; 
     String CYAN = "\u001B[0;36m"; 
     String WHITE = "\u001B[0;37m"; 

     System.out.printf("Hello young lad! What is thy " + RED + "name " + WHITE + "you were given at birth?\n>> "); 
     name = scanner.nextLine(); 
    } 
} 
+2

Попробуйте добавить 'System.out.flush();' перед вызовом 'nextLine()'. – chrylis

+0

Игнорируя материал AnsiConsole, он работает для меня. Похоже, ваша система может быть привязана к строке. – tommyo

+2

Вы вызываете 'printf', но не используете какие-либо его функции. Лучше использовать 'print', если вы не знаете, что' printf'. –

ответ

1

Этот код отлично работает после комментирования вещи AnsiConsole.

Это то, что я распечатываю.

Hello young lad! What is thy [0;31mname [0;37myou were given at birth? 
>> John 
+0

Что делать, если проблема связана с консолью Jansi? – zakinster

+0

@zakinster Тогда это будет связано с консолью ANSI от jAnsi. –

Смежные вопросы