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

标签 java shell

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

Shell 脚本:

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

测试.java

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

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

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

最佳答案

可能(取决于 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")

关于java - 如何在java程序中使用shell脚本的变量而不将其作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19904709/

相关文章:

java - 正则表达式以匹配方括号内的字符串

java - 为什么 Intellij-IDEA 会忽略我的 tomcat/conf/server.xml 上下文标记?

shell - 如何为通过 shell 脚本调用的 Ant 脚本传递参数?

ruby - 使用适当的参数转义从 ruby​​ 在后台执行 shell 命令

php - 检查命令是否正在多用户 php 进程中运行

java - 如何过滤 Play Framework CRUD 模块中的关联

java - 在 Java 中使用 JsonNode 查找没有父级的 JSON 兄弟

java - 细菌的基本递归

Linux - openssl sha256 使用文件中的 key

linux - bash中有 "goto"语句吗?