Как использовать команду " color 3 " в консоли при помощи java?
Мне хочется чтобы при запуске консольной программы я мог использовать консольные команды. Проще говоря мне нужно в коде прописать команду (в данном случае "color 3") и после запуска программы эти команды выполнялись в консоли.
В C++ это можно сделать так:
system("color 3");
А на java фиг знает как :)
Ответы (1 шт):
В Java для изменения цвета символов (а также цвета фона, стиля шрифта и т.п.) можно использовать ANSI-последовательности (англ.), если терминал их поддерживает.
public class Main
{
public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";
public static final String ANSI_BLACK_BACKGROUND = "\u001B[40m";
public static final String ANSI_RED_BACKGROUND = "\u001B[41m";
public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";
public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
public static final String ANSI_PURPLE_BACKGROUND = "\u001B[45m";
public static final String ANSI_CYAN_BACKGROUND = "\u001B[46m";
public static final String ANSI_WHITE_BACKGROUND = "\u001B[47m";
public static void outRed(String msg) {
out(ANSI_RED, msg);
}
public static void outGreen(String msg) {
out(ANSI_GREEN, msg);
}
public static void outYellow(String msg) {
out(ANSI_YELLOW, msg);
}
private static void out(String color, String msg) {
out(color, "", msg);
}
private static void out(String color, String bgColor, String msg) {
System.out.println(color + bgColor + msg + ANSI_RESET);
}
public static void main(String[] args) {
out(ANSI_WHITE, ANSI_RED_BACKGROUND, " RED ");
outYellow(" YELLOW ");
outGreen (" GREEN ");
}
}
На несовместимом терминале эти последовательности не будут корректно обрабатываться:
Другие варианты реализации (через enum, с дополнительными кодами для изменения шрифта и т.п.) можно найти по ссылке на основном StackOverflow (англ.): How to print color in console using System.out.println?

