У меня есть файл jar, в котором у меня есть функция, которая определяет его абсолютный путь (текущий каталог, из которого запускается этот файл).Работает нормально.
Но теперь, чтобы получить права администратора, я запускаю этот файл из другого файла JAR, используя исполняемый двоичный файл с повышением что-то вроде:
Elevate.exe javaw.exe -jar path-to-my-jar-file
Здесь,обратите внимание, что Elevate.exe
и файл jar находятся в одном каталоге, однако я попытался указать как только имя файла jar, так и абсолютный путь, но в обоих случаях файл запускается, у него есть права администратора, и все работает нормально, кромеДело в том, что теперь тот же метод дает неправильный текущий путь к каталогу.
На этот раз я получаю: C:\Windows\System32
Я пробовал много вещей, но каждый раз, когда я запускаю этот jar-файл, используя описанный выше метод из другого jar-файла, используя Runtime.getRuntime().exec("cmd \\c ");
, текущий путь к каталогу не определяется правильно.Почему это так, и как я могу найти правильный путь в таком случае?
РЕДАКТИРОВАТЬ: я попытался получить правильное имя каталога, используя:
String dir = System.getProperty("user.dir") &&
String dir = new File (".").getAbsolutePath().toString();
Оба возвращают один и тот же правильный путь, когда файл запускается независимо, и C:\Windows\System32
при запуске из внешнего процесса.Пожалуйста, предложите, что я должен сделать, чтобы решить эту проблему.