Функция подпроцесса Python не может загрузить библиотекуJAVA

Программисты JAVA общаются здесь
Anonymous
Функция подпроцесса Python не может загрузить библиотеку

Сообщение Anonymous »

Я пытаюсь выполнить файл jar Java с помощью функции subprocess.run() в Python. Когда я запускаю файл jar через Java, как обычно, обнаруживается необходимая библиотека. В данном случае это библиотека netCDF. Однако когда я использую функцию подпроцесса, библиотека не найдена.
Даже когда я явно говорю функции подпроцесса просмотреть каталог netcdf, библиотека все равно не найдена. Я выполняю вызов следующим образом:

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

java_env = dict(os.environ)
java_env['PATH'] = f'{java_env["PATH"]};C:\\Program Files\\netCDF 4.9.2\\bin'

result = subprocess.run(
['java', '-jar', jar_path],
capture_output = True,
text = True,
env=java_env)
Цель процедуры Python — вызвать jar Java, который записывает файл netCDF. Я ожидал, что библиотека будет найдена и файл netCDF будет записан на диск. При запуске процедуры Python я получаю следующую ошибку:

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

[main] WARN serverStartup - Nc4Iosp: NetCDF-4 C library not present (jna_path='null', libname='netcdf').
java.lang.UnsatisfiedLinkError: Unable to load library 'netcdf':
The specified procedure could not be found.

The specified procedure could not be found.

The specified module could not be found.

Native library (win32-x86-64/netcdf.dll) not found in resource path (C:/Users/rwal/projects/target/AddLightningLayer.jar)
Я также убедился, что библиотека netcdf находится в моей переменной пути Windows. Необходимо использовать Java, потому что мне нужно использовать API, написанный на Java. К сожалению, не существует эквивалента API на основе Java на языке Python.
Я использую Windows 10, Python 3.10.4 и JDK 17.
Спасибо за помощь.


Подробнее здесь: https://stackoverflow.com/questions/786 ... ad-library

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