如何在java程序中使用shell脚本的变量而不将其作为参数传递

时间:2013-11-11 11:02:29

标签: java shell

我从shell脚本调用java程序。 Shell脚本包含一个需要在java程序中使用的变量。

Shell脚本:

for s in 0 1
do
javac -cp $CLASSPATH ./src/*.java
java -cp $CLASSPATH Test
done

Test.java

main() {
sValue = ...; // here I need to get value from shell
someMethod(sValue) {
. ... . 
}
}

shell脚本有变量s,值为0和1.我需要在java程序Test中使用这个变量。

在我的程序中,我无法将此值作为参数传递为“java -cp $ CLASSPATH Test $ s”。所以请提供其他解决方案。

2 个答案:

答案 0 :(得分:1)

可行(取决于shell)您将导出s变量以使其对Java进程可见:

for s in 0 1
do
export V=$s
javac -cp $CLASSPATH ./src/*.java
java -cp $CLASSPATH Test
done

然后在Test.java中System.getenv("V")

答案 1 :(得分:0)

你想要的是System.getEnv(...)