【问题标题】:Write a file by batch using Java call使用 Java 调用批量写入文件
【发布时间】:2017-08-24 23:14:04
【问题描述】:

我正在开发一个应用程序,我需要在其中使用下面的批处理命令编写一个文件:

[example.bat]

date >> a.txt

当我正常运行这个批处理文件时,它会在我当前的工作目录中创建一个文件 a.txt,但是当我从 Java 应用程序调用它时,它既不创建文件 a.txt 也不写入。

[Main.java]

File startbat = new File("./example.bat");
Desktop.getDesktop().open(startbat);

当我运行我的 Java 文件时,它会执行批处理文件,但没有执行任何写入操作,但应该完成。

【问题讨论】:

  • 是 cmd,不是 cwd。
  • @SteveFest 它是 cwd = 当前工作目录
  • Nvm。哦..我弄错了,因为我们通常在有关批处理文件的主题中使用cd而不是cwd,但是您是正确的,因为CD和cwd可以不同。
  • 您需要显示尝试执行批处理文件的整个代码部分,包括任何封闭的 try-catch 块。展示整个方法。否则你的问题是题外话。见minimal reproducible example

标签: java batch-file java-io


【解决方案1】:

在探索了一些事情之后,我发现 Java 机器不允许从本机进程写入第三个文件。这意味着您不能按 Java 机器调用的进程编写文件。但是,如果您想遵循上述任务,您可能会喜欢:

Process p = Runtime.getRuntime().exec("*batcommand*");
Scanner sa = new Scanner(p.getInputStream());
String output = sa.nextLine();

感谢您的宝贵回答。

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 2017-11-29
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多