2012-04-13 183 views
1

我想在Ubuntu 10.04中使用shell腳本設置環境,並且想要在java程序中訪問。我曾經寫過shell腳本是這樣的:在shell腳本中設置環境變量/在Java程序中訪問

#! /bin/sh 
export JAVA=/home/ubuntu 
echo "Variable $JAVA" 

和我的java程序是:

import java.util.Map; 

public class SystemEnv 
{ 
    public static void main(String[] args) 
    { 

     Map<String, String> variables = System.getenv(); 
     for (Map.Entry<String, String> entry : variables.entrySet()) 
     { 
      String name = entry.getKey(); 
      String value = entry.getValue(); 
      System.out.println(name + "=" + value); 
     } 
     System.out.println(System.getenv(("JAVA"))); 
    } 
} 

當我沒有執行shell腳本命令它工作得很好,但在shell腳本沒有。

+0

請出示shell腳本(即包含用於運行代碼的'java'命令)。另外,當你說它不起作用時,症狀到底是什麼? – NPE 2012-04-13 11:49:04

+0

請在啓動java程序之前檢查env命令的輸出。 – Jayan 2012-04-13 11:49:53

回答

1

你想要做什麼?

運行JAVA=/home/ubuntu java SystemEnv工作正常(即輸出「/家/ Ubuntu的」)

如果要環境變量導出到父進程,你必須採購它:

source ./myscript.sh 
. ./myscript.sh # Alternative form 
+0

在bash中,「源」是另一種形式。 – 2012-04-13 13:26:18

+0

如何讓它成爲全球?即我也可以從tomcat訪問。 – 2012-04-14 09:21:56

+0

@AnandSoni一旦Tomcat(或任何其他程序)已經啓動,我不認爲它可以完成(有人請糾正我,如果我錯了)。我認爲你在Ubuntu上,看看https://help.ubuntu.com/community/EnvironmentVariables#System-wide_environment_variables – lum 2012-04-16 07:47:16