Вот несколько методов, которые можно использовать для запуска сценария оболочки с аргументами из Java:
Метод 1: использование класса ProcessBuilder
import java.io.IOException;
public class ShellScriptLauncher {
public static void main(String[] args) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("sh", "script.sh", "arg1", "arg2");
Process process = processBuilder.start();
int exitCode = process.waitFor();
System.out.println("Shell script executed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Метод 2: использование Runtime.exec()
import java.io.IOException;
public class ShellScriptLauncher {
public static void main(String[] args) {
try {
String[] command = {"sh", "script.sh", "arg1", "arg2"};
Process process = Runtime.getRuntime().exec(command);
int exitCode = process.waitFor();
System.out.println("Shell script executed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Метод 3: использование ProcessBuilder
с переменными среды
import java.io.IOException;
import java.util.Map;
public class ShellScriptLauncher {
public static void main(String[] args) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("sh", "script.sh", "arg1", "arg2");
Map<String, String> environment = processBuilder.environment();
environment.put("VAR1", "value1");
environment.put("VAR2", "value2");
Process process = processBuilder.start();
int exitCode = process.waitFor();
System.out.println("Shell script executed with exit code: " + exitCode);
} catch (IOException | InterruptedException e) {
e.printStackTrace();
}
}
}
Обратите внимание, что в приведенных выше примерах «script.sh» представляет собой путь к вашему сценарию оболочки, а «arg1» и «arg2» — это аргументы, передаваемые в сценарий.