Talend (Ubuntu) - 读取系统变量
Talend (Ubuntu) - Read System Variables
我想创建一个流程,它会根据系统变量 "WORK_ENV" 选择一个配置文件。我似乎无法在我的 talend 作业的 Java 节点中执行此操作。
但是,如果我在 ubuntu 终端上执行 "echo $WORK_ENV",我可以看到以下输出。
已尝试使用 System.getenv("WORK_ENV") 以及较新的 System.getProperty("WORK_ENV")。它们都产生空值。
网络搜索告诉我,同样的结构对人们有用,但出于某种奇怪的原因,它对我不起作用。
Talend 版本是 Open Studio 7.0.1,在 Ubuntu 16.04LTS
我建议您使用上下文参数将该值传递给您的工作。
您可以在名为 ENV
的作业中声明一个上下文变量。当您独立构建作业时,您会得到一个 *nix 系统的启动器,如下所示:
#!/bin/sh
cd `dirname [=10=]`
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
这对我有用:
String work_env=(String)System.getenv("WORK_ENV");
System.out.println("Work Environment is " + work_env);
我想创建一个流程,它会根据系统变量 "WORK_ENV" 选择一个配置文件。我似乎无法在我的 talend 作业的 Java 节点中执行此操作。
但是,如果我在 ubuntu 终端上执行 "echo $WORK_ENV",我可以看到以下输出。
已尝试使用 System.getenv("WORK_ENV") 以及较新的 System.getProperty("WORK_ENV")。它们都产生空值。
网络搜索告诉我,同样的结构对人们有用,但出于某种奇怪的原因,它对我不起作用。
Talend 版本是 Open Studio 7.0.1,在 Ubuntu 16.04LTS
我建议您使用上下文参数将该值传递给您的工作。
您可以在名为 ENV
的作业中声明一个上下文变量。当您独立构建作业时,您会得到一个 *nix 系统的启动器,如下所示:
#!/bin/sh
cd `dirname [=10=]`
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
这对我有用:
String work_env=(String)System.getenv("WORK_ENV");
System.out.println("Work Environment is " + work_env);