Написал программу для запуска Java. Использовал Free Pascal 3.2.2 и Windows 11.
- Код: Выделить всё
- program project1;
 uses
 ShellApi, SysUtils;
 var
 JRE_Folder, JAR_Folder: String;
 {$R *.res}
 begin
 JRE_Folder := GetCurrentDir + '\JRE\bin\javaw.exe';
 JAR_Folder := GetCurrentDir + '\JavaProgram.jar';
 ShellExecute(0, 'open', PChar(JRE_Folder), PChar('-jar "' + JAR_Folder + '"'), nil, 1);
 end.
Работает исправно, только если фолдер запуска на английском, если переименовать на русский или др. язык, то ничего не запускает. Наверно, неправильно определяет текущий фолдер GetCurrentDir.
Прбовал
- Код: Выделить всё
- {$codepage UTF8}
- Код: Выделить всё
- PWideChar(UTF8Decode(GetCurrentDir))
Как временное решение, запретил пользователю переименовывать фолдер запуска.
Пожалуйста, подскажите, что можно сделать?


