繁体   English   中英

如何将属性设置为可从Java代码执行的Groovy脚本?

[英]How to set properties to Groovy script which is executable from Java code?

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

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

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

如果要通过Runtime.exec的最低公分母(或类似文件)启动groovy脚本,则可以在重载的方法之一中指定环境:

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

...

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

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


您应该注意, 环境是操作系统级别的东西; 衡量运行该进程的OS的属性的一种方法。

如果要查找应用程序级别的设置,则实际上应该检查System.properties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM