Проводник Windows не открывает папку по указанию JAR [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Проводник Windows не открывает папку по указанию JAR [закрыто]

Сообщение Anonymous »

У меня есть приложение Spring Boot с интерфейсом HTML. Приложение имеет API, который при вызове должен открывать папку в файловой системе (только для Windows — поддержка Linux и MacOS не требуется) по заданному пути. В качестве аргумента предположим, что путь — «C:/Temp».
API вызывает следующий метод, который будет использовать проводник Windows для открытия папки по заданному пути (проверка происходит до к этому методу, который гарантирует, что путь существует и является папкой)

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

public int openWindowsFileExplorer(final Path path) {
try {
String absolutePath = path.toAbsolutePath().toString();
ProcessResult result = new ProcessExecutor()
.command("C:/Windows/explorer.exe " , absolutePath)
.readOutput(true)
.execute();
String output = result.outputString();
String outputUTF8 = result.outputUTF8();
int exitValue = result.getExitValue();
log.debug("Output: {}, Output UTF8: {}, Exit value: {}", output, outputUTF8, exitValue);
} catch (IOException ioException) {
log.error("Could not open directory {}", path, ioException);
return 0;
}
return 1;
}
Это прекрасно работает, когда код выполняется в среде IDE, например IntelliJ. Но когда я упаковываю приложение в виде JAR, папка не открывается и в журналах приложения не появляются ошибки (это приложение Spring Boot).
Происходит следующее: если я запускаю JAR, перейдите на страницу HTML и щелкните ссылку, которая вызывает API, на вкладке сети консоли браузера показано, что запрос к API переходит в состояние «Ожидание» и никогда не завершается.
Я предполагаю, что это какая-то проблема с разрешениями, но мне интересно, почему ошибок не появляется.
Некоторые шаги по отладке, которые я уже предпринял:
  • Я проверил, нет ли в пути пробелов (если они есть, метод отклонит операцию и уведомит пользователя)
  • Я распечатал регистрирует точную команду, которая используется для открытия файлов, и может подтвердить наличие «C:/Windows/explorer.exe».
Это пример журнала вывода команды:
Вывод: , Выход UTF8: , Значение выхода: 1
ОТВЕТ: Папки не было открытие, поскольку файл JAR находился в каталоге C:\Program Files, в котором применена защита, останавливающая запуск внешних процессов (например, открытие новых папок, создание новых файлов и т. д.)

Подробнее здесь: https://stackoverflow.com/questions/787 ... o-by-a-jar
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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