有没有办法从shell脚本程序中将输出从Java程序(而不是输出文件)中获取到变量中。我的shell脚本的输出是数据库查询执行时间,我需要将该时间值分配给Java变量。 (我从Java程序调用该shell脚本)。然后我需要在Java中对这些值进行一些其他计算。将shell脚本的输出放入Java程序的变量中
1
A
回答
-1
我只是谷歌它,有一个很好的教程,全面的例子在这里:http://www.mkyong.com/java/how-to-execute-shell-command-from-java/
我知道人们prefere复制/粘贴,但让我们尊重其他人的工作,并继续他们的网站:P
+0
这应该是一条评论。 –
+2
在答案中包含内容的原因之一是,即使原始页面脱机,它也会始终保留在此处。 –
0
以下程序将帮助您将任何脚本或任何命令的完整输出存储到String对象中。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ExecuteShellComand {
public static void main(String[] args) {
ExecuteShellComand obj = new ExecuteShellComand();
String output = obj.executeCommand("sh /opt/yourScriptLocation/Script.sh");
System.out.println(output);
}
private String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
}
相关问题
- 1. 将命令的输出传递给shell脚本中的变量
- 2. 如何将shell脚本的输出存储到变量中
- 3. 来自shell脚本的Java程序中的输入值
- 4. 捕获远程命令在shell脚本内的变量输出
- 5. 如何在shell脚本中将shell变量放入curl命令中?
- 6. 无法从运行java程序的shell脚本获取输出
- 7. 将命令输出分配给shell脚本变量
- 8. 在shell脚本中输出到文件名变量时出错
- 9. 如何搜索字符串并将其放入shell脚本中的变量中?
- 10. 如何将由程序输出的空格分隔的数字放入Bash shell脚本的数组中?
- 11. 将tar命令的输出重定向到shell脚本中的变量
- 12. 如何在Unix中将shell脚本的输出存储到变量中?
- 13. 将输出管道输入到shell脚本|亚马逊的Linux
- 14. 的Linux shell脚本:从标准输入传递变量的awk
- 15. 的Linux Shell脚本输入
- 16. 的Bash shell脚本变量
- 17. 带变量的Shell脚本
- 18. 在Unix Shell脚本中排序输入
- 19. Shell脚本变量
- 20. 将具有多行输入的可执行文件的输出存储到shell脚本中的变量
- 21. 从另一个脚本调用一个shell脚本,并将该脚本的输出存储在变量中
- 22. Bash Shell脚本为grep搜索的输出分配新变量
- 23. PHPUnit - 将Bash脚本输出到变量
- 24. Linux Shell脚本:在变量/文件中保存命令输出?
- 25. 将变量输入到awk脚本
- 26. Linux shell脚本:允许用户在输入中使用变量
- 27. 使用shell脚本写入程序的标准输入
- 28. 如何在Bash脚本中将C++程序的输出作为变量使用
- 29. Shell脚本:将匹配的文本替换为程序的输出
- 30. 批处理脚本:从程序到变量的输出列?
你从哪里得到那个输出? –
我的shell脚本中有这个变量:TIME ='echo“$ END - $ START”,现在我需要获取TIME的输出,并将TIME变量的值分配给Java类中的其他变量。我正在做遗传算法的适应度函数,所以进一步通过对从shell脚本获得的那些Java变量进行一些计算,我设置适应度并将其发送到ecj(ecj是用Java编写的用于进化优化的工具包) – user3344382
正在执行通过Java的脚本?如果是的话,你可以得到一个'Process'''InputStream'并读取/解析它。 –