java中调用linux命令选择yn

fiy 其他 9

回复

共3条回复 我来回复
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Java中调用Linux命令并选择是否执行是可以通过ProcessBuilder类来实现的。下面是一个示例代码:

    “`java
    import java.io.*;

    public class LinuxCommandExecutor {
    public static void main(String[] args) {
    try {
    // 构建命令
    ProcessBuilder pb = new ProcessBuilder(“ls”);

    // 设置工作目录(可选)
    pb.directory(new File(“/path/to/directory”));

    // 启动进程
    Process process = pb.start();

    // 获取命令的输出流
    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

    String line;

    // 读取命令的输出,并打印到控制台
    while ((line = reader.readLine()) != null) {
    System.out.println(line);
    }

    // 关闭流和进程
    reader.close();
    process.waitFor();
    process.destroy();

    // 询问用户是否继续执行
    System.out.println(“是否继续执行?(y/n)”);
    BufferedReader userInputReader = new BufferedReader(new InputStreamReader(System.in));
    String userInput = userInputReader.readLine();

    if (userInput.equalsIgnoreCase(“y”)) {
    // 继续执行其他命令
    // …
    } else if (userInput.equalsIgnoreCase(“n”)) {
    System.out.println(“退出程序”);
    } else {
    System.out.println(“无效输入”);
    }

    userInputReader.close();

    } catch (IOException | InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    “`

    上述代码使用ProcessBuilder类构建并执行了一个简单的Linux命令”ls”,并将命令的输出打印到控制台。之后,程序会询问用户是否继续执行其他命令,根据用户的输入进行相应的操作。

    请注意,上述代码仅仅是演示了如何调用Linux命令并选择是否执行,并不完整,你可以根据实际需求做相应的修改和扩展。另外,要注意在实际使用中,应该对用户的输入进行验证和处理,以确保程序的稳定性和安全性。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Java中调用Linux命令并选择”y”或”n”,可以通过调用ProcessBuilder类的方法来实现。下面是实现此功能的示例代码:

    “`java
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class LinuxCommand {
    public static void main(String[] args) {
    try {
    ProcessBuilder pb = new ProcessBuilder(“bash”, “-c”, “read -p \”Do you want to continue? [y/n] \” response; echo $response”);
    pb.redirectErrorStream(true);
    Process process = pb.start();

    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line;

    while ((line = reader.readLine()) != null) {
    System.out.println(line);
    if (line.equalsIgnoreCase(“y”)){
    // 执行’y’的逻辑
    System.out.println(“You chose ‘y’.”);
    } else if (line.equalsIgnoreCase(“n”)) {
    // 执行’n’的逻辑
    System.out.println(“You chose ‘n’.”);
    } else {
    // 输入无效
    System.out.println(“Invalid input.”);
    }
    }

    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    “`

    上述代码使用了ProcessBuilder类来调用bash命令,并通过”-c”参数执行指定的命令字符串。在这个示例中,我们使用了read命令来提示用户输入”y”或”n”,并将输入的值存储在response变量中,然后通过echo命令打印出response的值。然后,我们读取Process的输出,并根据用户选择执行相应的逻辑。

    请注意,上述示例代码中的命令字符串是简单的示例,你可以根据需要自定义命令字符串来执行更复杂的Linux命令。另外,在实际应用中,你可能需要处理用户输入的错误和异常情况。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Java中调用Linux命令,可以使用ProcessBuilder类来实现。下面是一个使用ProcessBuilder调用Linux命令并选择yn的示例:

    “`java
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class LinuxCommand {
    public static void main(String[] args) {
    String command = “ls -l”; // 要执行的Linux命令
    try {
    ProcessBuilder processBuilder = new ProcessBuilder(command.split(” “));
    Process process = processBuilder.start();

    // 从命令的输出流中读取数据
    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
    System.out.println(line);
    }

    int exitCode = process.waitFor(); // 等待命令执行完成
    if (exitCode == 0) {
    System.out.println(“命令执行成功”);
    } else {
    System.out.println(“命令执行失败”);
    }
    } catch (IOException e) {
    e.printStackTrace();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    “`

    上述代码中,我们使用ProcessBuilder创建一个新进程,并指定要执行的Linux命令。然后,我们使用输出流读取命令的输出,并将其打印到控制台。

    要选择yn,您可以在执行命令之前在控制台上询问用户,并根据用户的输入进行处理。下面是一个示例,演示如何调用Linux命令并选择yn:

    “`java
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class LinuxCommand {
    public static void main(String[] args) {
    String command = “rm -rf /path/to/file”; // 要执行的Linux命令

    // 在控制台上询问用户是否执行命令
    System.out.println(“要执行的命令是:” + command);
    System.out.print(“是否执行?(y/n): “);

    try {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    String input = reader.readLine();

    if (input.equalsIgnoreCase(“y”)) {
    ProcessBuilder processBuilder = new ProcessBuilder(command.split(” “));
    Process process = processBuilder.start();

    // 从命令的输出流中读取数据
    BufferedReader outputReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line;
    while ((line = outputReader.readLine()) != null) {
    System.out.println(line);
    }

    int exitCode = process.waitFor(); // 等待命令执行完成
    if (exitCode == 0) {
    System.out.println(“命令执行成功”);
    } else {
    System.out.println(“命令执行失败”);
    }
    } else {
    System.out.println(“取消执行命令”);
    }
    } catch (IOException e) {
    e.printStackTrace();
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    “`

    上述代码中,我们在控制台上询问用户是否要执行命令。如果用户输入”y”,则执行命令;如果用户输入其他字符,将取消执行命令。

    这是一个基本的示例,您可以根据需要将它扩展为更复杂的程序。请注意,在执行要修改文件系统的危险命令时要谨慎,并确保用户了解并同意执行该命令。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部