Comment imprimer la couleur de la console à l'aide du Système.out.println?
Comment puis-je imprimer de la couleur dans la console? Je veux afficher les données dans des couleurs lorsque le processeur envoie des données et de différentes couleurs quand il reçoit des données.
Vous devez vous connecter pour publier un commentaire.
Si votre terminal prend en charge, vous pouvez utiliser ANSI codes d'échappement à l'utilisation de la couleur dans votre sortie. Il travaille généralement pour Unix shell invites; toutefois, il ne fonctionne pas pour l'Invite de Commande Windows (Bien que, il fonctionne pour Cygwin). Par exemple, vous pouvez définir des constantes de ce type et pour les couleurs:
Ensuite, vous pouvez référencer ceux que nécessaire.
Par exemple, en utilisant les constantes ci-dessus, vous pourriez faire le rouge ci-dessous le texte de sortie pris en charge sur les bornes:
Mise à jour: Vous pourriez vouloir vérifier la Jansi de la bibliothèque. Il fournit une API et a un support pour Windows en utilisant JNI. Je n'ai pas encore essayé; cependant, il semble prometteur.
Mise à jour 2: Aussi, si vous souhaitez changer la couleur de fond du texte d'une couleur différente, vous pouvez essayer la ainsi:
Par exemple:
if (System.console() == null) System.setProperty("jansi.passthrough", "true");
however it doesn't work for Windows command prompt
J'ai créé une bibliothèque appelée JCDP (Java Couleur de Débogage de l'Imprimante).
Pour Linux, il utilise la norme ANSI codes d'échappement que WhiteFang mentionné, mais les résumés eux à l'aide de des mots plutôt que des codes qui est beaucoup plus intuitif. C'est aussi simple que:
Pour Windows il dépend JAnsi mais crée une couche d'abstraction au dessus, de maintenir la simple et intuitive de l'API indiqué ci-dessus.
Vous avez quelques exemples à JCDP dépôt github.
Voici une liste de couleurs dans une classe Java avec
public static
champsUtilisation
Note
N'oubliez pas d'utiliser le
RESET
après l'impression que l'effet restera si elle n'est pas effacéeAssez portable manière de faire avec les premières séquences d'échappement. Voir http://en.wikipedia.org/wiki/ANSI_escape_code
[édité pour user9999999 sur 2017-02-20]
Java n'est pas "gérer les codes", c'est vrai, mais Java sorties de ce que vous avez dit à la sortie. ce n'est pas Java est la faute de la console Windows traite les ESC (chr(27)) comme juste un autre glyphe (←).
windows
. la console Windows n'a jamais été compatibles ANSI que je me souviens.Vous pouvez faire cela en utilisant des séquences d'échappement ANSI. En fait, j'ai mis en place cette classe en Java pour toute personne qui souhaite une solution simple pour cela. Il permet pour plus que juste des codes de couleur.
https://gist.github.com/nathan-fiscaletti/9dc252d30b51df7d710a
(Porté à partir de: https://github.com/nathan-fiscaletti/ansi-util)
Exemple D'Utilisation:
Si quelqu'un est à la recherche d'une solution rapide, n'hésitez pas à utiliser les éléments suivants de la classe helper 🙂
UTILISATION:
Merci @whiteFang34 pour les codes ANSI.
La meilleure façon de couleur de la console texte est d'utiliser ANSI codes d'échappement. En plus de la couleur du texte, ANSI codes d'échappement permet à la couleur de fond, décorations et plus encore.
Unix
Si vous utilisez springboot, il existe un enum pour le texte de coloriage: org.springframework.de démarrage.ansi.AnsiColor
Jansi bibliothèque est un peu plus avancé (vous pouvez utiliser tous les échappement ANSI codes de fonctions), fournit une API et a un le support de Windows à l'aide de la "JNA".
Sinon, vous pouvez définir manuellement votre propre de couleur, comme le montre est d'autres réponses.
Windows 10
Windows 10 (depuis construire 10.0.10586 - nov. 2015) prend en charge ANSI codes d'échappement (La documentation MSDN) mais il n'est pas activé par défaut. Pour l'activer:
ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
drapeau. Jansi utilise cette option.HKEY_CURRENT_USER\Console\VirtualTerminalLevel
par la création d'un dword et mettre à 0 ou 1 pour la norme ANSI traitement:"VirtualTerminalLevel"=dword:00000001
Avant Windows 10
Console Windows ne prend pas en charge les couleurs ANSI. Mais il est possible d'utiliser la console qui ne.
Si vous utilisez Kotlin (qui fonctionne de manière transparente avec Java), vous pouvez faire une enum:
Et ensuite utiliser comme tel: (code ci-dessous présente les différents styles pour toutes les couleurs)
Si en cours d'exécution sur Windows où ces ANSI codes ne sont pas pris en charge, le
isCompatible
vérifier évite les questions en remplaçant les codes avec une chaîne vide.