1

Ubuntu 10.04でシェルスクリプトを使用して環境を設定し、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")));
    }
}

シェルスクリプトなしでこのコマンドを実行するとうまく機能しますが、シェルスクリプトでは機能しません。

4

2 に答える 2

4

スクリプトをどのように調達していますか?

$./myscript.sh 

また

$source ./myscript.sh 

2つ目は、環境変数を現在のシェルに設定します。Javaプログラムは問題ないようです。

編集:コメントに基づく

サブシェルに関連する問題でした。簡単に読むと
、bashスクリプトを実行することとbashスクリプトを調達することの違いは何ですか?

于 2012-04-13T11:48:59.740 に答える
1

あなたは正確に何をしようとしていますか?

実行JAVA=/home/ubuntu java SystemEnvは正常に機能します(つまり、「/ home / ubuntu」を出力します)

環境変数を親プロセスにエクスポートする場合は、次のソースを使用する必要があります。

source ./myscript.sh
. ./myscript.sh # Alternative form
于 2012-04-13T11:52:51.267 に答える