0

在我的 Groovy 脚本中,我有以下代码:

def username = System.getenv()['USER']
def password = System.getenv()['PASS']

这是因为我不能将此信息用作 Groovy 脚本的参数,因为其他用户不应该知道它。当我运行这个脚本时,我在我的系统中设置了这个参数。现在我有一个问题。我有一个远程运行 Groovy 脚本的 Java 应用程序。有什么方法可以在 Java 代码中设置环境变量?(在这里我发现这是不可能的)。还是有一些安全的方法可以将这些属性从 Java 发送到 Groovy?

4

1 回答 1

1

Runtime.exec如果您通过(或类似)的最低公分母启动 groovy 脚本,那么您可以在其中一种重载方法中指定环境:

在具有指定环境的单独进程中执行指定的字符串命令。

...

envp- 字符串数组,其中每个元素都具有格式 name=value 的环境变量设置,如果子进程应该继承当前进程的环境,则为 null。

另一方面,如果您在同一个 Java 进程中调用 Groovy 脚本,那么它将具有与正在运行的进程相同的属性。因此,System.setProperty("USER", xxx)在调用 Groovy 脚本之前简单地调用将意味着该属性对您的 Groovy 逻辑可见。


您应该注意,环境是操作系统级别的东西;对运行进程的操作系统属性的度量。

如果您正在寻找应用程序级别的设置,那么您真的应该检查一下System.properties

于 2012-07-31T10:28:35.387 回答