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スクリプトを起動する場合は、オーバーロードされたメソッドの1つで環境を指定できます。

指定された環境で、指定された文字列コマンドを別のプロセスで実行します。

..。

envp-文字列の配列。各要素には、name = valueの形式の環境変数設定があります。サブプロセスが現在のプロセスの環境を継承する必要がある場合は、nullになります。

一方、同じJavaプロセス内でGroovyスクリプトを呼び出す場合は、実行中のプロセスと同じプロパティがあります。したがってSystem.setProperty("USER", xxx)、Groovyスクリプトを呼び出す前に呼び出すだけで、このプロパティがGroovyロジックに表示されます。


環境はオペレーティングシステムレベルのものであることに注意してください。プロセスが実行されているOSのプロパティの測定。

アプリケーションレベルの設定を探している場合は、System.properties代わりに実際に確認する必要があります。

于 2012-07-31T10:28:35.387 に答える