我想创建一个流,该流将基于系统变量“ WORK_ENV”选择一个配置文件。我似乎无法在我的才能工作的Java节点中做到这一点。
但是,如果我在ubuntu终端上执行“ echo $ WORK_ENV”,则可以看到以下输出。
尝试使用System.getenv(“ WORK_ENV”)以及较新的System.getProperty(“ WORK_ENV”)。他们两个都为空。
网络搜索提示我,相同的结构对人有用,但出于某种奇怪的原因,它对我不起作用。
Talend版本是Ubuntu 16.04LTS上的Open Studio 7.0.1
答案 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);