如何在OS X上设置环境变量?


69

我一直困难设定OS X环境变量,例如JAVA_HOMEM2_HOMEPATH。如何在OS X Mavericks上进行设置?

我做了一些研究,但是找到的答案并没有真正帮助我:

  1. export JAVA_HOME=/... (但似乎更改是临时的,仅用于一个终端会话。)
  2. setenv JAVA_HOME=/... (但是找不到命令。)
  3. 打开.profile并在其中写入变量以使更改永久-(.profile不存在)。
  4. 打开.bash_profile并在其中写入变量以使更改永久-(.bash_profile不存在)。
  5. vi ~/.bash_profile(对于不认识的人来说是一个很大的挑战vi。)
  6. 创建自己的enrivonment.plist文件。

假设没有 Unix知识,有人可以指导我完成在OS X Mavericks上运行的步骤吗?


1
Unix(和任何其他操作系统)对新用户来说可能很难,所以我可以理解您的无奈。但是,所写的问题范围很广,不会带来您正在寻找的答案。您能否将其重写以专注于您实际遇到的问题(例如“如何在Mavericks上设置JAVA_HOME和PATH”),以确保您可以得到良好的答案?
nohillside

如我所见,Stuffe已经编辑了我的问题。谢谢 我的问题就像标题所述,如何在Mavericks上设置JAVA_HOME和PATH。
akcasoy

@patrix:下次,我将向您解释我的问题或我想问的问题,然后您将用您的文字写下我的问题。好?看来您的主持人对此很满意。
akcasoy

Answers:


44

我的主目录中有一个.profile;它包含许多export …有关环境变量的语句。

您可以通过打开终端并发出命令touch .profile Close Terminal 来创建这样的文件。

然后,您应该在纯文本编辑器(例如TextWrangler)中打开该文件。您还可以nano .profile在“终端”窗口中使用(当前目录应为您的主目录),这比容易得多vi。插入行,如export JAVA_HOME=…。保存,nano如果使用过则退出,然后退出正在运行的终端。

打开终端并发出命令env以查看所有环境变量。检查您定义的值是否具有分配给它们的值。您现在应该走了。但是不要忘记,其中定义的环境变量.profile不会传递给GUI应用程序。


非常感谢你。这就是我真正想要的。现在,我已经设置了所有变量。GUI应用程序是什么意思?我只需要一些Java和Maven变量即可使用Eclipse,Spring工具等。Eclipse是具有GUI(图形用户界面)的应用程序。您是用GUI表示这个意思吗?
akcasoy

好。我读过一些书,我想您的意思是具有GUI的GUI。是否有一种方法可以使这些变量随处可见?那么最常见的定义方式是什么?
akcasoy

1.是的,这就是我所说的GUI应用程序。2.在OS X 10.8中为GUI应用程序设置环境变量似乎很困难。例如,某些应用程序允许您定义环境变量,这些变量将按偏好设置传递给其他应用程序。您也可以open -a Appname在终端会话中使用该方法。
2013年

4
我不知道为什么,但是对我来说(OS X Yosemite 10.10.1).profile并没有帮助。我必须将export语句放入.bash_profile使其生效。希望这对其他遇到同样问题的人
有所

22

在优胜美地,你应该把export VARIABLE='something'里面.bash_profile

我试图写export VARIABLE='something'里面.profile没有成功。


确实。.profile仅在通过手动执行时起作用。source .profile 但是,重新启动后,不会加载.profile。.bash_profile是。
KC 2015年

不太正确。
Koray Tugay 2015年

2
@KorayTugay您能指出出什么问题了吗,也许是一种解决它的方法?
拉斐尔·伊恩



5

为了将目录添加到路径,OS X中有一个更好的选择:在启动任何外壳程序之前,将/ etc / paths文件中的所有条目添加到该路径。

使用以下命令编辑此文件:

sudo pico /etc/paths

有关更多信息,请参见:https : //gist.github.com/Overbryd/1669348


谢谢!对我来说,这是包含新路径的最优雅的方式
Asimov

4

OSX仅对环境变量进行了一次更改,并且在Lion中删除了〜/ .MacOSX / environment.plist。尽管10.2或10.3中的默认Shell也从tsch更改为bash。

您需要定义所需的环境变量集以及所需的环境。

您还需要了解shell和Unix,根据您的评论,它们尚未完全完成。周围有几个nbash教程。

关于你的观点

  1. 假设您使用的是sh型shell(例如bash或zsh),则可以正确理解
  2. 这适用于C shell,例如tcsh,因此不适用于最近的默认值。
  3. 您需要创建.profile然后它可以工作
  4. 它是.bash_profile或更好的.bashrc,您需要先创建文件
  5. 完全正确:)使用TextEdit或nano(或emacs)
  6. 请更正OSX 10.7以及wy,以针对从工作区(例如Dock或Finder)(或打开的)中调用的程序执行此操作

因此,如果您是从命令行(或从命令行启动但不是通过open调用的程序)调用程序,则3或4可以工作

至于来自GUI的程序,请参阅此问题

至于互联网充满了垃圾-您需要具有足够的背景知识来理解文章,因为您发现许多假设或不正确的东西。StackExhnage网站应该更好,因为您可以从投票数中查看是否已同意答案。


我仍然没有任何结果。链接的问题并没有带我解决。我拥有4年的Mac,但仍然没有(不必)关于UNIX的经验。我想,当回答“为什么这么难?”时,答案是“ plist已删除,更改为10.2或10.3,sh型外壳,最大为10.7等。”答案与自身矛盾。
akcasoy

可以像在Windows中一样非常容易地制作它。无论如何..我真正期望的是某事。像这样:1-打开家庭目录2-打开终端3-写“ xxx” 4-单击“保存”等。一定不能有足够的背景来设置一个简单的变量,至少可以从上面的样板答案中找到合适的解决方案互联网。
akcasoy

如果需要环境变量,则必须了解它们的作用,这需要背景知识。另外,由于您没有说明使用变量的方式,因此我必须给出所有可能的差异。Java设置的注意事项JAVA_HOME不一定是最好的方法(请参阅Java问题)
2013年

我的问题是关于设置变量。无论是他们在做什么,也没有其他需要更多信息的事情。显然,即使没有背景也可以设置它们。谢谢您的回答。但是正如我已经写的那样,一个简单的解决方案提案就足够了,我已经感谢Bhas。
akcasoy

您真的不应该在没有背景的情况下设置变量,您必须知道它们的作用
user151019 2013年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.