Компиляция Java через cmd. Решаем проблемы с кириллицей
Бывает так, что в при компиляции Java через cmd появляется сообщение - error: unmappable character for encoding windows-1252 (недопустимый символ для кодировки windows-1252) и на этом этапе компиляция аварийно завершается. Необходимо отметить, что подобного рода проблемы возникают, как правило, с Windows. Также хотелось бы уточнить - cmd является аббревиатурой словосочетания «command line interpreter» (интерпретатор командной строки), если кратко «командная строка», а еще короче «консоль» или «терминал».


Исходные данные
Из представленных скриншотов, можно видеть, что данный исходный код с кодированием utf-8 находится в среде Windows 7, где кодировка cmd по умолчанию - cp866.
Процесс компиляции
Ошибку устраняем следующим образом - javac -encoding utf8 Solution.java . Тем самым сообщаем JDK, что кодировка компилируемого исходного кода - utf-8. Теперь процедура компиляции Java через cmd завершается успешно и в папке solution появляется новый файл — Solution.class . Запускаем его на выполнение с помощью - java Solution и видим, что файл выполняется успешно и кириллица в командной строке отображает корректно.
В качестве эксперимента, меняем кодировку в командной строке на 1251 набрав — chcp 1251, снова запускаем файл Solution.class. Опять все корректно выполняется и отображается. Для наглядности, все вышеперечисленные действия можно видеть в выше представленных скриншотах.
В сущности, ошибки не было, а была лишь необходимость сообщить JDK установленную кодировку в исходном коде. На такое решение меня, в свое время, натолкнула мысль, что компиляция одного и того же кода в Linux, в отличие от Windows, выполняется корректно.
Демонстрация в Linux
Из представленного ниже скриншота следует, что терминал настроен на utf-8, а компиляция осуществляется этого же самого кода, что и в предыдущем случае, только в данном примере все выполняется успешно с первого раза.

Итог
Ничего сложного, решение весьма простое. Полагаю, подобным же образом решаются другие аналогичные проблемы.
Конечно, может возникнуть вопрос: “А зачем нужна эта морока с компиляцией Java через cmd?” Ведь гораздо проще и быстрее то же самое выполнить с помощью программных средств весьма комфортных (Ant, Maven и др.). Все дело в том, что желающим стать профессионалами IT необходимо уметь пользоваться cmd. Это в будущем обязательно пригодится и всегда выручит в трудной ситуации, когда графический интерфейс будет бессилен.
А в заключении хочется еще посоветовать начинающим, уметь работать хотя бы в одной UNIX подобной операционной системе. Их весьма много: FreeBCD, NetBSD, Solaris, Linux со множеством дистрибутивов и др. Всегда можно подобрать что-то на свой вкус. Это особенно необходимо тем, кто желает заняться серверными решениями.