[英]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.