java 运行 ProcessBuilder 时出现问题 - 如何从外部文件获取要执行的命令?
java issue when running ProcessBuilder - how to get the command to be executed from an external file?
我不是java方面的专家。
我正在尝试通过 java 应用程序 运行 一些 ms-dos 命令。如果我用 java 代码编写命令,一切正常。
但是,如果我想将命令存储在输出“.txt”文件中,在执行期间读取此文件,最后,运行 通过 java 命令,事情不会发生工作。
请看下面的代码:
String abc = "cd \"C:\Users\Adm\" && dir";
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", abc);
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
...
在这种情况下,结果与预期的一样,因为 abc 已填充到 java 代码中。但是,如果我从 readbuffer(外部文件)中获取 abc 的内容,它将不起作用。
请问有什么诀窍?
请注意,我正在正确读取外部文件。正在正确检索外部文件中的每一行(每行包含一个命令)。
我知道 java 对“/”有一些问题,有时迫使我像“//”一样声明它,但无论我在外部文件中有什么,它都不起作用。
在外部“.txt”文件中,为了填充 abc,我试过:
"cd \"C:\Users\Adm\" && dir"
cd \"C:\Users\" && dir
"cd \"C:\Users\Adm\" && dir"
cd \"C:\Users\" && dir
感谢您的帮助。
只需将您想要的命令 运行 放入文件即可。
如果你想运行:
cd "C:\Users\Adm" && dir
那么这就是您应该放入文件中的内容。
不要尝试将其格式化或转义为 Java 代码。 .txt
文件不是用 Java 编写的,也不使用或尊重 Java 语法。
我不是java方面的专家。
我正在尝试通过 java 应用程序 运行 一些 ms-dos 命令。如果我用 java 代码编写命令,一切正常。
但是,如果我想将命令存储在输出“.txt”文件中,在执行期间读取此文件,最后,运行 通过 java 命令,事情不会发生工作。
请看下面的代码:
String abc = "cd \"C:\Users\Adm\" && dir";
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", abc);
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
...
在这种情况下,结果与预期的一样,因为 abc 已填充到 java 代码中。但是,如果我从 readbuffer(外部文件)中获取 abc 的内容,它将不起作用。
请问有什么诀窍?
请注意,我正在正确读取外部文件。正在正确检索外部文件中的每一行(每行包含一个命令)。
我知道 java 对“/”有一些问题,有时迫使我像“//”一样声明它,但无论我在外部文件中有什么,它都不起作用。
在外部“.txt”文件中,为了填充 abc,我试过:
"cd \"C:\Users\Adm\" && dir"
cd \"C:\Users\" && dir
"cd \"C:\Users\Adm\" && dir"
cd \"C:\Users\" && dir
感谢您的帮助。
只需将您想要的命令 运行 放入文件即可。
如果你想运行:
cd "C:\Users\Adm" && dir
那么这就是您应该放入文件中的内容。
不要尝试将其格式化或转义为 Java 代码。 .txt
文件不是用 Java 编写的,也不使用或尊重 Java 语法。