2012-04-13 70 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

相关问题