Talend(Ubuntu)-读取系统变量

时间:2018-08-13 13:20:55

标签: talend

我想创建一个流,该流将基于系统变量“ WORK_ENV”选择一个配置文件。我似乎无法在我的才能工作的Java节点中做到这一点。

但是,如果我在ubuntu终端上执行“ echo $ WORK_ENV”,则可以看到以下输出。

enter image description here

尝试使用System.getenv(“ WORK_ENV”)以及较新的System.getProperty(“ WORK_ENV”)。他们两个都为空。

网络搜索提示我,相同的结构对人有用,但出于某种奇怪的原因,它对我不起作用。

Talend版本是Ubuntu 16.04LTS上的Open Studio 7.0.1

2 个答案:

答案 0 :(得分:1)

我建议您使用上下文参数将该值传递给您的工作。
您可以在作业中声明一个名为ENV的上下文变量。当您独立创建工作时,您将获得一个* nix系统的启动器,其外观如下:

#!/bin/sh
cd `dirname $0`
ROOT_PATH=`pwd`
java -Xms64M -Xmx1024M -cp .:$ROOT_PATH:$ROOT_PATH/..other jars.. talend_project.talend_job_0_1.talendJob --context=Default "$@" 

然后您可以通过执行以下操作将环境变量发送到您的作业:

talendJob_run.sh --context_param ENV=$WORK_ENV

然后在您的Talend工作中,您可以使用context.ENV

答案 1 :(得分:0)

这对我有用:

String work_env=(String)System.getenv("WORK_ENV");

System.out.println("Work Environment is " + work_env);