Я пытаюсь установить переменную среды с помощью модульного теста, когда я запускаю свой код на локальной машине, он работает нормально.
Но когда я развертываю его в конвейере Jenkins, он начинает выдавать исключение.
Исключение: -
java .lang.NoSuchFieldException: theCaseInsensitiveEnvironment
Фрагмент кода: -
Class<?> processEnvironmentClass = Class.forName("java.lang.ProcessEnvironment");
Field theEnvironmentField = processEnvironmentClass.getDeclaredField("theEnvironment");
theEnvironmentField.setAccessible(true);
Map<String, String> env = (Map<String, String>) theEnvironmentField.get(null);
env.clear();
env.putAll(newenv);
Field theCaseInsensitiveEnvironmentField = processEnvironmentClass.getDeclaredField("theCaseInsensitiveEnvironment");
theCaseInsensitiveEnvironmentField.setAccessible(true);
Map<String, String> cienv = (Map<String, String>) theCaseInsensitiveEnvironmentField.get(null);
cienv.clear();
cienv.putAll(newenv);