#java #intellij-idea #build #artifact
#java #intellij-идея #сборка #артефакт
Вопрос:
Я создал проект, который считывает файл csv (сохраненный как csv UTF-8). в моем проекте я прочитал каждую строку этого csv-файла. Вывод каждой строки отображается в файле журнала.
Теперь, когда я запускаю свой проект в intellij и просматриваю файл журнала, все строки доступны для чтения. Но когда я создаю артефакт из своего проекта, а затем запускаю этот jar, некоторые символы в csv заменяются символом ‘?’ ..
я заглянул в настройки своего проекта в разделе «кодировка файла», и там также есть все UTF-8.
Я понятия не имею, как это возможно.. Кто-нибудь может мне помочь? Спасибо!
Комментарии:
1. Поможет ли это, если вы запустите его с
-Dfile.encoding=UTF-8
опцией виртуальной машины из командной строки jar?2. Можете ли вы привести мне пример полной строки, которую я должен ввести в cmd?
3.
java -Dfile.encoding=UTF-8 -jar yourapp.jar param1 param2
4. Да, это работает! большое, большое спасибо!
Ответ №1:
Укажите кодировку при запуске приложения из командной строки следующим образом:
java -Dfile.encoding=UTF-8 -jar yourapp.jar param1 param2
Или измените код вашего приложения, который читает / записывает файлы, чтобы явно принудительно использовать правильную кодировку.
Ответ №2:
Когда я указываю -Dfile.encoding=UTF-8, мне нужно поместить этот параметр кодировки между двумя «, однако он не работает и возвращается ошибка. Может быть, это поможет кому-то с той же проблемой, что и у меня.
java "-Dfile.encoding=UTF-8" -jar app.jar