Java 和 Bash shell

标签 java bash

希望有人能给我一些建议。我正在用java运行一个程序,需要包含一个已经用bash编写的函数。老实说,我不知道从哪里开始。

我有一些文件,我用我的java程序在某种程度上处理它(我删除重复项,对名称进行排序等)。我最终得到了其他文件的几个路径。

for(String go:parsun){
    pathed="/home/S/Data/"+go+"/Ana/lysis/"+go+"/file.vcf";
    System.out.println("Pathed: " + pathed);
 }

我需要采用这些路径并将它们放入一个 bash 程序中,该程序获取文件的内容并对它们的内部进行一些数学运算。 我在互联网上看到,您可以执行类似的操作来在 java 中运行 bash 脚本:

Process pro=Runtime.getRuntime().exec("shellfilepath");
BufferedReader read=new BufferedReader(new InputStreamReader(pro.getInputStream());

但我不确定我是否理解它是如何工作的,或者我将如何将我的文件路径传递给它。另外,另一个考虑因素是我必须稍微修改 bash 脚本以允许它接受这些路径。以前,路径是预先硬编码的。我还需要这方面的一些建议。

这是让 bash 和 Java 一起工作的最佳方式吗?还有其他技术吗?如果没有,有人可以帮助我了解如何使用运行时吗?

谢谢

最佳答案

您可以使用:

Process process = Runtime.getRuntime().exec("bash_command " + pathed);

路径文件名将作为$1参数传入。

关于Java 和 Bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411549/

相关文章:

bash - 仅使用 Bash 模式匹配从字符串开头删除模式

python - "shebang/usr/bin/env python"调用了错误的 Python 解释器

Java数组索引越界?

java - 使用 namespace 和前缀的 JAXB 解码

Java注解动态类型转换

linux - 如何在 bash 的 for 循环中使用命令的输出?

java - 使用 JrxmlDatasource 在 jasperreports 中显示希腊字母

java - GUI 的标签问题

python - 使用 awk 系统将特殊字符输入 python sys.argv

带有停止/启动选项的 Linux bash 脚本