Библиотеки не имеют (не могут?) правильно обращаться к переменным среды/PATH.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Библиотеки не имеют (не могут?) правильно обращаться к переменным среды/PATH.

Сообщение Anonymous »

Недавно я получил новый компьютер с Win 11 и две библиотеки, которые отлично работали на моем компьютере с Win 10, теперь больше не работают, хотя я установил их так же, как и на Win 10. Переменные среды (системные, а не пользовательские) также установлены таким же образом, и все же я продолжаю получать исключения, которые выглядят так, будто мои IDE не получают автоматический доступ и не ищут новые переменные среды и/или PATH. Код, использующий библиотеки, которым не требуется переменная среды или PATH (разумеется, за исключением Java), работает нормально!
Здесь перечислено все, включая папки библиотек:

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

ProcessBuilder builder = new ProcessBuilder();
Map env = builder.environment();
String path = env.get("Path");
String[] split = path.split(";");
System.out.println("Path:\n"+String.join(System.lineSeparator(), split));
Это тоже работает:

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

String envvar = System.getenv("SOME_LIBRARY_BIN");
Самое странное то, что somelibrary.getVersion(); выдает исключение, но если я вызываю somelibrary --version из командной строки, то оно работает, даже если я не запускаю cmd от имени администратора.
На данный момент я протестировал две версии Eclipse (2020-06 Enterprise и 2025-09 Enterprise) и IntelliJ IDEA (последний=2025.3.2), все они с новыми проектами и с Java 8 - мне приходится использовать Java 8 с этими библиотеками (думаю, это даже та же версия, которую я запускал на Win 10). IDE и мой компьютер уже перезапускались много раз.
Друг протестировал мой код в JDeveloper (также Java 8), и, по крайней мере, первая библиотека не выдала никаких исключений (вторую не тестировал). Оба компьютера работают под управлением Win 11 Pro версии 25H2 (одна и та же сборка).
Похоже, это может быть вызвано настройками Win 11, но что может ограничить доступ к таким переменным среды/PATH, по крайней мере, когда к ним пытается получить доступ внешняя библиотека?

Подробнее здесь: https://stackoverflow.com/questions/798 ... h-properly
Ответить

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

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

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

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

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