【问题标题】:Linux MV command From Java [duplicate]来自Java的Linux MV命令[重复]
【发布时间】:2013-02-07 05:41:40
【问题描述】:

我想知道如何从 java 中使用 linux MV 命令。我尝试了各种代码,但对我没有用。你能告诉我如何将文件从一个目录移动到Linux操作系统中的另一个目录从java。我的问题是如何从 java 中使用 linux MV 命令而不是如何在 java 中移动文件。

【问题讨论】:

  • 检查stackoverflow.com/questions/12970741/…了解如何在java中执行cmd
  • String[] command = {"sh","-c", "/home/web/abc/"+Filename+" /home/web/abc/"};运行时 rt = Runtime.getRuntime();进程 proc = rt.exec(command); int exitVal = proc.waitFor(); System.out.println("进程退出值:" + exitVal);
  • @theJollySin- 我认为当一个解决方案可用于使用操作系统中可用的命令时,为什么我们要编写相同的代码。它没有用。我的问题是在 linux 中使用 mv 命令移动文件,而不是如何在 java 中移动文件。无论如何谢谢你。我得到了解决方案。

标签: java linux


【解决方案1】:

如果您在 *nix 系统上运行 Java 应用程序,并假设您的应用程序有权执行 mv 命令,请尝试以下代码

String[] shCommand = {"/bin/sh", "-c", "mv somefile newfile"}; 

    // creates a process to run the command in
    Runtime rt = Runtime.getRuntime();
    Process prcs = null;
    try
    {
        // run the command
        prcs = rt.exec(shCommand);
    }
    catch (Exception e)
    {
        console.err("Execute Command Error:");
        e.printStackTrace();
    }

您需要创建一个 Runtime 来与您的 Java 应用程序正在运行的环境(在这种情况下为 *nix)和 Process 接口以在环境中运行一个进程

编辑:您可能不需要 Process 部分,因为我通常使用它让我的应用程序等待命令完成执行或获取退出代码,因此如果您不需要这些,您可以省略 Process 部分

【讨论】:

  • 谢谢这解决了我的问题。
【解决方案2】:

System.getRuntime().exec("bash mv ....");

用你的实际命令替换并执行

【讨论】:

    【解决方案3】:

    这可行:

    Runtime runtime = Runtime.getRuntime();
    String[] runCommand = new String[3];
    runCommand[0] = "sh";
    runCommand[1] = "-c";
    runCommand[2] = "mv a.txt b.txt";
    Process process = runtime.exec(runCommand);
    process.waitFor();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-05
      • 2022-12-16
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      相关资源
      最近更新 更多