【问题标题】:Java fails to create directory / file from the command line [duplicate]Java无法从命令行创建目录/文件[重复]
【发布时间】:2018-03-14 11:29:56
【问题描述】:

我有一个生成一些文件的可执行文件,我需要从 Java 应用程序调用这个可执行文件。命令是这样的

Generator.exe -outputfile="path/to/file" [some other params]

它在命令提示符下工作正常,但从 Java 运行它,所有步骤都已执行,但未创建文件。 我怀疑问题是我的java应用程序无法创建文件/目录,所以我尝试创建一个如下目录

try {
  String envp[] = new String[1];
  envp[0] = "PATH=" + System.getProperty("java.library.path");
  Runtime.getRuntime().exec("mkdir path/to/folder", envp);
}
catch (Exception e) {
  e.printStackTrace();
}

我得到以下异常,即使目录存在

java.io.IOException: Cannot run program "mkdir":     
CreateProcess error=2, The system cannot find the file specified

我也尝试过使用java.lang.Processjava.lang.Process,但遇到了同样的异常,尽管命令mkdir path/to/folder 在命令提示符下运行良好

【问题讨论】:

    标签: java cmd


    【解决方案1】:

    两点:

    1) 您不需要将 java.library.path 传递给 mkdir 命令。 Mkdir 需要一个参数 - 您要创建的目录。

    2) 为什么不使用 Java File 类来创建目录呢?创建路径的 File 对象,然后在其上调用 mkdirs() 函数。

    【讨论】:

    • 1) 没有区别 2) 因为文件将由可执行文件而不是我创建,而这段代码 sn-p 是为了模仿这种行为
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 2020-10-18
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多