[英]Environment variables in Eclipse
我能夠從命令提示符運行示例 hadoop 程序,並嘗試從 Eclipse 運行相同的程序,以便我可以調試它並更好地理解它。
對於命令行程序,一些環境變量在.bashrc
中設置,並且在 hadoop 程序中被讀取為System.getenv().get("HADOOP_MAPRED_HOME")
。 但是,當我使用System.getenv().get("HADOOP_MAPRED_HOME")
運行 java 程序時,從 Eclipse 我得到 Z37A6259CC0C1DAE299A78666489。
我嘗試在 Eclipse 的運行時配置中將-DHADOOP_MAPRED_HOME=test
傳遞給 VM 參數,但仍然在獨立程序中獲得 null。 如何使環境變量在 Eclipse 中可見? 當我遍歷 Eclipse 中的System.getenv()
時,我看到了很多變量,如DISPLAY
、 USER
、 HOME
等。 它們設置在哪里? 我正在使用 Ubuntu 11.04。
您還可以定義僅在 Eclipse 內可見的環境變量。
Go 運行 -> 運行配置...和 Select 選項卡“環境”。
在那里,您可以添加幾個特定於您的應用程序的環境變量。
我為此創建了一個 eclipse 插件,因為我遇到了同樣的問題。 隨意下載它並為它做出貢獻。
它仍處於早期開發階段,但它已經為我完成了它的工作。
.bashrc 文件用於設置交互式登錄 shell 使用的變量。 如果您希望這些環境變量在 Eclipse 中可用,您需要將它們放在 /etc/environment.xml 中。
您可以通過向 VM 發送 -Dhadoop.home.dir 來設置 Hadoop 主目錄。 要將此參數發送到您在 eclipse 中執行的所有應用程序,您可以在 Window->Preferences->Java->Installed JREs->(選擇您的 JRE 安裝)-> Edit..->(在“默認 VM arguments:”文本框)。 您可以將 ${HADOOP_HOME} 替換為 Hadoop 安裝的路徑。
您也可以在 shell 中啟動 eclipse。
在調用 eclipse 之前導出 enronment。
示例:
#!/bin/bash
export MY_VAR="ADCA"
export PATH="/home/lala/bin;$PATH"
$ECLIPSE_HOME/eclipse -data $YOUR_WORK_SPACE_PATH
然后,您可以在 eclipse 上擁有多個實例,並擁有自己的客戶環境,包括工作區。
我試圖實現這一點,但在 MAVEN 構建的背景下。 作為我的pom.xml
配置的一部分,我引用了一個環境變量作為本地 JAR 路徑的一部分:
<dependency>
<groupId>the group id</groupId>
<artifactId>the artifact id</artifactId>
<version>the version</version>
<scope>system</scope>
<systemPath>${env.MY_ENV_VARIABLE}/the_local_jar_archive.jar</systemPath>
</dependency>
要編譯我的項目,我必須將環境變量定義為 maven 構建的運行配置的一部分,正如 Max 的回答所解釋的那樣。 我能夠啟動 maven 編譯,項目編譯得很好。
但是,由於此環境變量涉及一些依賴項,Eclipse 的默認“問題”視圖(通常會顯示編譯錯誤/警告)仍會顯示錯誤,如Could not find artifact
和systemPath should be an absolute path but is ${env.MY_ENV_VARIABLE}/the_local_jar_archive.jar
。
我是如何解決的
Go 進入Window -> Preferences -> General -> Worksapce -> Linked Resources
並定義一個新的路徑變量。
最后,在我的情況下,我只需要右鍵單擊我的pom.xml
文件 select Maven -> Update Project
,錯誤就從“問題”視圖中消失了。
對於想要在 Eclipse 項目中覆蓋 OS 的環境變量的人,也可以參考@MAX 答案。
當您在同一台機器上發布項目結束 eclipse 項目時,這很有用。
發布項目可以使用 OS 環境變量進行測試,eclipse 項目可以覆蓋它以供開發使用。
我能夠設置環境。 通過采購變量(shell (ksh) 腳本中的源命令)設置它們的文件。 然后我從外部工具中調用了.ksh 腳本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.