首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DYLD_PRINT_LIBRARIES不工作

DYLD_PRINT_LIBRARIES不工作
EN

Stack Overflow用户
提问于 2016-09-21 18:19:20
回答 1查看 5K关注 0票数 3

在尝试使用其他DYLD_属性时,我发现jvm正在使用属性操作,它们在执行过程中被忽略。

我的Java测试:

代码语言:javascript
复制
class Env {
    public static void main(String... args) {
        System.getenv().entrySet().stream().forEach(e -> System.out.println(e.getKey() + " = " + e.getValue()));
    }
}

调用:

代码语言:javascript
复制
$ export DYLD_PRINT_LIBRARIES=1
$ export MY_PRINT_LIBRARIES=2
$ javac Env.java && java Env|grep PRINT
MY_PRINT_LIBRARIES = 2
$ 

另一方面,我的C测试:

代码语言:javascript
复制
#include <stdio.h>

int main(int argc, char **argv, char **envp) {
    while (*envp) {
        printf("%s\n", *envp);
        envp++;
    }
    return 0;
}

调用:

代码语言:javascript
复制
$ gcc env.c && ./a.out|grep PRINT
dyld: loaded: /Users/okutane/test/java/./a.out
dyld: loaded: /usr/lib/libSystem.B.dylib
dyld: loaded: /usr/lib/system/libcache.dylib
...
dyld: loaded: /usr/lib/libc++.1.dylib
dyld: loaded: /usr/lib/libDiagnosticMessagesClient.dylib
MY_PRINT_LIBRARIES=2
DYLD_PRINT_LIBRARIES=1
$

我希望jvm测试也能工作,有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-25 17:34:11

随着SIP的引入,所有匹配DYLD_*的环境变量都将在执行受限二进制文件之前被删除。其中包括您将使用的/usr/bin/java二进制文件:

代码语言:javascript
复制
$ ls -lOL /usr/bin/java
-rwxr-xr-x  1 root  wheel  restricted,compressed 58560 Sep  7 06:41 /usr/bin/java*
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39623829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档