Логотип блога MY

 ВЕБ-ТЕХНОЛОГИИ

 Домен itworldmy.ru - блог MY

начинающему айтишнику

 Поиск  

Компиляция Java через cmd. Решаем проблемы с кириллицей

 После кодировки наслаждаюсь жинью, подбирая код

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

Пример Java кода Трансляция Java кода через cmd

Исходные данные

Из представленных скриншотов, можно видеть, что данный исходный код с кодированием 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 в Ubuntu

Итог

Ничего сложного, решение весьма простое. Полагаю, подобным же образом решаются другие аналогичные проблемы.

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

А в заключении хочется еще посоветовать начинающим, уметь работать хотя бы в одной UNIX подобной операционной системе. Их весьма много: FreeBCD, NetBSD, Solaris, Linux со множеством дистрибутивов и др. Всегда можно подобрать что-то на свой вкус. Это особенно необходимо тем, кто желает заняться серверными решениями.


Комментарии
Опубликовано: 0
Ждущих публикации: 0


Ваше имя:
(не более 20 символов)

Ваше сообщение:
(не более 1000 символов)



В разделах


Опрос 1

Какая у Вас система ?


   Linux - 5
   Windows - 4
   Обе - 1
   Android - 2
   iOS - 0
   Другие - 0

Всего: 12 чел.


Опрос 2

Какой формат док-ов пользуете?


   ODF - 3
   MS OOXML - 2
   Оба - 1
   Что это? - 2

Всего: 8 чел.


Данные

Время  - 09:04:53
Дата - 21.10.2021

Страница:
 - обновлена - 06.10.2021
 - посещений - 206

Сейчас:
 - на сайте - 1
 - переходов - 1

↑ ВВЕРХ