我能够从命令提示符运行示例hadoop程序,并尝试从Eclipse运行相同的程序,以便我可以对其进行调试并更好地理解它。
对于命令行程序,在中设置了一些环境变量,.bashrc
并且读取System.getenv().get("HADOOP_MAPRED_HOME")
了与hadoop程序中相同的变量。但是,当我System.getenv().get("HADOOP_MAPRED_HOME")
从Eclipse运行带有的Java程序时,我得到的是null。
我尝试-DHADOOP_MAPRED_HOME=test
从Eclipse传递运行时配置中的VM参数,但在独立程序中仍然为null。如何使环境变量在Eclipse中可见?当我通过迭代System.getenv()
在Eclipse中,我看到很多的变量一样DISPLAY
,USER
,HOME
和其他人。他们在哪里设置?我正在使用Ubuntu 11.04。
.bashrc文件用于设置交互式登录外壳程序使用的变量。如果要在Eclipse中使用这些环境变量,则需要将它们放在/ etc / environment中。
谢谢-它有效-只需重新启动计算机-避免重新启动的任何方法。
您可以尝试使用
source /etc/environment
,但是在已运行的进程中替换环境变量并不可行。重新启动是最安全的选择。Mac Os X是否具有等效功能?
@ChandraMohan-有关为Mac OSX应用程序设置环境变量的最佳方法,请参见此处。
在Linux中,足以重新启动欢迎程序(gdm,lxdm,xdm,kdm等)。从Xorg外部重新启动greeter,打开控制台(例如,使用CTRL + ALT + F2),登录并重新启动greeter服务。然后使用(CTRL + ALT + F1)返回Xorg会话,可以是系统上的另一个F键,只需尝试每个人。