在java代码中间将参数传递给bash文件

Pass parameters to bash file in the middle of a java code

本文关键字:bash 文件 参数传递 java 代码 中间      更新时间:2023-10-16

我有一个Java代码通过以下命令行运行

java -jar CPM-1.0-SNAPSHOT-jar-with-dependencies.jar Example arg[0] arg[1] arg[2] arg[3]

显然我需要传递4个参数。

在我的Java代码中间,我应该使用下面的bash文件调用C++代码。

#!/bin/bash
/home/CPM/Codes/source/GcEqClass arg[0]

bash文件中的arg[0]与Java命令行中的arg[0]相同,在命令行中使用arg[0]的主要原因是在bash脚本中使用它。我的问题是,如何在不手动编辑bash文件的情况下将arg[0]从命令行传递到bash脚本?

您的bash文件应该是:

#!/bin/bash
/home/CPM/Codes/source/GcEqClass "$@"

"$@"基本上等同于java中的参数数组,类似于"$1" "$2" "$3" ..

从Java,你可以做:

Runtime.getRuntime().exec(new String[] { 
    "/yourpath/toyour/script", arg[0]
});

编写脚本:

#!/bin/bash
java -jar CPM-1.0-SNAPSHOT-jar-with-dependencies.jar Example $1 $2 $3 $4

将其保存为scritp.sh,然后运行它:

./script.sh 1 2 3 4