Я пытаюсь скомпилировать/преобразовать программу 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, с набором символов, используемый кодом Java на основе JDK?
Подробнее здесь:
https://stackoverflow.com/questions/797 ... mmand-line