当前位置: 首页 > 知识库问答 >
问题:

系统getenv仍然在MacOS Mojave-Java上获取已删除的env变量值

姜钧
2023-03-14

我在bash_profile和profile文件中添加了一些可导出的环境变量,格式如下export“X = y”。这工作,因为它应该,现在我想永久删除它们。我试过以下方法:

    < li >从bash_profile和profile文件中删除导出的变量,保存文件,调用source ~/。bash_profile和source ~/.profile. < li >在终端窗口中调用“取消设置X”。以前我可以调用“echo $X”来显示y,现在它什么也不显示。 < li >重新启动Mac计算机。

然而,每当我调用Java的html" target="_blank">系统时。在getenv(X)中,仍然返回env变量X的值(y)。在MacOS Mojave中,我还需要做什么才能完全消除系统中的env变量?

共有1个答案

惠泳
2023-03-14

您似乎认为环境变量是全局性的。也就是说,修改一个程序中的值(如正在运行的终端)将影响另一个程序中的值。这不是环境变量在像操作系统这样的UNIX中的工作方式。每个进程都提供父进程提供的 env var 的副本。也就是说,它们是从父进程继承的。

您必须在终端中取消设置X以将其删除这一事实意味着它要么是由shell从终端进程继承的,要么是您的shell正在设置它。在后一种情况下,shell启动时读取的特定文件取决于shell。但是大多数交互式shell都会读取 /etc/profile,所以您可能想在那里查看。

您说您的Java应用程序由Tomcat运行,但没有提到Tomcat是如何启动的。出于上述原因,这一点很重要。

请注意,macOS使用名为Launchd的守护进程来管理运行的大多数服务。这些服务是通过“plist”文件配置的。请参阅manlaunchd.plist。这些启动配置文件支持定义自定义环境变量。这有点不寻常,但值得一看。查看~/Library/LaunchAgents、 /Library/LaunchAgents或 /Library/LaunchDaemons中的任何文件是否提到环境变量。

 类似资料:
  • 本文向大家介绍ThinkPHP中系统变量有哪些?如何获取系统变量?相关面试题,主要包含被问及ThinkPHP中系统变量有哪些?如何获取系统变量?时的应答技巧和注意事项,需要的朋友参考一下 (1)系统变量:SERVER、 SERVER、 S ERVER、ENV、 $POST、 $GET、 REQUEST、 REQUEST、 R EQUEST、SESSION和 $_COOKIE变量 (2)获取系统变量

  • 我需要的是一种适当的方法,让这个方法获得值。 将这个“sdk.root”放在哪里,以便IntelliJ提取它?在属性文件中还是在bash中?

  • 本文向大家介绍PowerShell获取系统环境变量的方法,包括了PowerShell获取系统环境变量的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍在PowerShell中,如何获取环境变量的值。可以列出所有的环境变量,也可以指定通过变量名称来获取环境变量的值。 在开发过程中,经常需要用到环境变量(比如当前计算机名、登录的用户名、Path环境变量等),那么在PowerShell中如何知道有

  • 问题内容: 这开始让我发疯..但是似乎我很没办法亲自找出来:/ 我需要设置一个机制,以共享字符串值两个从机,例如,名为从属 甲 和从 乙 。 但是它仍然旨在使能够在buildscript中进行访问,而不是在Slaves环境变量本身中进行访问。(相关的SO问题:在Windows批处理命令的Jenkins中如何使用环境变量? 目前,我有此设置: 1)在 一个 工作 一个 被触发。 它执行以下Windo

  • 本文向大家介绍php获取系统变量方法小结,包括了php获取系统变量方法小结的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php获取系统变量的方法。分享给大家供大家参考。具体如下: 这里通过一些php内置函数获得各种系统变量。 希望本文所述对大家的php程序设计有所帮助。

  • 我使用方法,权限删除所有已安装应用程序的系统缓存。但是该方法开始从android Marshmallow6.0版本抛出。在谷歌搜索这些问题后,我发现了与这里报告的相同的问题:Android M反射方法freeStorageAndNotify异常,所以这里的结论是,停止工作,因为google现在已经将该方法的签名级别提升到signatureSystem。 但现在的问题是,像“Clean Master