如何在MacOS上设置LD_LIBRARY_PATH/DYLD_LIBRARY_PATH [英] How to set LD_LIBRARY_PATH/DYLD_LIBRARY_PATH on macos

查看:367
本文介绍了如何在MacOS上设置LD_LIBRARY_PATH/DYLD_LIBRARY_PATH的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在MacOS Catalina上'''回声$ VARIABLE'''

On macos catalina '''echo $VARIABLE'''

我看到了变量的值,但是java无法读取系统变量.

I see the value of the variable but java couldn't read the system variable.

在linux中没有问题,所以我认为这是zsh问题.

In linux there is not a problem so I think it is a zsh issue.

Java读取所有 env 变量,除了 LD_LIBRARY_PATH DYLD_LIBRARY_PATH

Java read all the variables env, except LD_LIBRARY_PATH and DYLD_LIBRARY_PATH

推荐答案

如果启用了系统完整性保护(SIP),则变量LD_LIBRARY_PATH/DYLD_LIBRARY_PATH不会传递到macOS上的子进程环境.

Variables LD_LIBRARY_PATH / DYLD_LIBRARY_PATH are not passed to the environment of a child process on macOS if System Integrity Protect (SIP) is enabled.

确认:

#!/bin/zsh

cat << EOF > EnvDemo.java
public class EnvDemo {
   public static void main(String[] args) throws Exception {
      System.out.println(System.getenv("LD_LIBRARY_PATH"));
      System.out.println(System.getenv("DYLD_LIBRARY_PATH"));
      System.out.println(System.getenv("PATH"));
      System.out.println(System.getenv("CUSTOM_FLAG"));
   }
} 
EOF

javac EnvDemo.java
export LD_LIBRARY_PATH=/usr/local/library
export DYLD_LIBRARY_PATH=/usr/local/library
export CUSTOM_FLAG=custom_flag
java EnvDemo
# null
# null
# /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/oracle-19-5
# custom_flag

echo "env | grep LD_LIBRARY_PATH"
env | grep LD_LIBRARY_PATH
# No output here
echo "env | grep DYLD_LIBRARY_PATH"
env | grep DYLD_LIBRARY_PATH
# No output here

这篇关于如何在MacOS上设置LD_LIBRARY_PATH/DYLD_LIBRARY_PATH的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆