Разница в чтении набора символов из командной строкиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Разница в чтении набора символов из командной строки

Сообщение Anonymous »

Я пытаюсь скомпилировать/преобразовать программу Java, которую я написал, используя «нормальный» JDK (Java V24) в изначально скомпилированный код с использованием GRAALVM (V25). «Классическая» версия работает нормально. Нативная версия запускается ОК, но затем у нее есть проблема с чтением аргументов программы из командной строки, которая, по-видимому, в другом наборе символов, чем те, которые используются в оригинальном приложении Java (или имени файла, с которыми сталкиваются по-разному). < /P>
Проблема является триггером путем передачи файла-аргюмента в приложение (через перетаскивание). Оба варианта программы повторяют имени файла (на самом деле полное файл) как: < /p>

Код: Выделить всё

U:\Documents\Kontoausz�ge\...\Umsatz�bersicht_20250401-20250831.csv
< /code>
i.e. Также в классической версии имя файла, эхо -на консоли, кажется «искаженным» (� 
на самом деле является ü в файловой системе), но классическая версия Java находит, открывает и обрабатывает этот файл без проблем. Скомпилированное нативное исполняемое эхо Граалвм эхо отголовок также «искаженное», но затем бросает филефоунд-экстенсию: < /p>

Код: Выделить всё

java.io.FileNotFoundException: U:\Documents\Kontoausz�ge\...\Umsatz�bersicht_20250401-20250831_AT221600000100586916.csv (The system cannot find the path specified)
(Примечание: я оставил нерелевантные фракции пути здесь по причине конфиденциальности и заменил их на ... ).
Почему это поведение по обработке имени/пути? Есть ли возможность выравнивать набор символов командной строки, используемый GraAlVM, сгенерированным кодом урожая, с набором символов, используемым на основе JDK "Vanilla" кода Java? Вопросы:
Это в Windows 10 (все текущие исправления/исправления/обновления установлены).
no "VM", кроме Java VM, здесь участвуют. Фактическое имя файла/path-u: \ documents \ kontoauszüge \ ... \ umsatzübersicht_20250401-20250831.csv
(... -part пути не содержит никаких Umlauts или других специальных символов).

Код: Выделить всё

C:\>chcp
Active code page: 437
< /code>
Настройки региона системы Windows - «Английский (Швейцария)» (да - это существует). Язык отображения системы-«Английский (США)». Я перетаскиваю файл, который я хочу обрабатывать через командный файл, который затем вызывает приложение Java, передающую аргумент через %1 
в командную строку, вызывая приложение Java (или .exe в случае Graalvm).

Подробнее здесь: https://stackoverflow.com/questions/797 ... mmand-line
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»