在Linux下,我有一个Java进程,其中一个插件依赖于libgtk-*.so
共享库。目前,我们使用$LD_LIBRARY_PATH
或$LD_PRELOAD
来设置这个共享库的路径。但是如果Java进程打开子进程,那么它们也会设置这些env,这会导致不必要的结果。
在任何其他编程语言(如Python)中,一旦Java进程开始运行,我就会取消这两个env。但看起来像Java does not let you a way to modify envs in runtime。
是否可以将共享库作为Java参数之一提供?还有其他方法只为Java进程而不是为任何子进程设置这个共享库吗?
发布于 2022-06-06 15:04:21
您可以直接调用动态链接器,并要求它为您的可执行文件预加载某些库:
/lib64/ld-linux-x86-64.so.2 --preload /lib/x86_64-linux-gnu/libc.so.6 /bin/ls
https://stackoverflow.com/questions/72524058
复制相似问题