在Java程序中的shell脚本/访问设置环境变量(Set environment variable

2019-06-23 14:23发布

我想在Ubuntu 10.04使用shell纸条来设置环境,并希望在Java程序来访问。 我曾经写过shell脚本是这样的:

#! /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脚本没有。

Answer 1:

你是如何采购的脚本?

$./myscript.sh 

要么

$source ./myscript.sh 

第二个将设置环境变量,以目前的外壳。 Java程序看起来确定。

编辑:根据评论

这是子shell相关问题。 快速阅读是
什么是执行bash脚本和采购bash脚本之间的区别?



Answer 2:

什么是你想要做什么呢?

运行JAVA=/home/ubuntu java SystemEnv工作正常(即输出“/家/ Ubuntu的”)

如果要环境变量导出到父进程,你必须采购它:

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


文章来源: Set environment variable in shell script/access in Java program