首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行ProcessBuilder时的java问题-如何从外部文件获取要执行的命令?

运行ProcessBuilder时的java问题-如何从外部文件获取要执行的命令?
EN

Stack Overflow用户
提问于 2018-07-09 01:03:28
回答 1查看 34关注 0票数 0

我不是java方面的专家。

我正在尝试通过java应用程序运行一些ms-dos命令。如果我的命令是用java代码编写的,那么一切都可以正常工作。

但是,如果我想将命令存储在输出".txt“文件中,在执行过程中读取该文件,最后通过java运行命令,则无法正常工作。

请看下面的代码:

代码语言:javascript
复制
        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,我尝试了:

代码语言:javascript
复制
"cd \"C:\\Users\\Adm\" && dir"
cd \"C:\\Users\" && dir
"cd \"C:\Users\Adm\" && dir"
cd \"C:\Users\" && dir

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-09 01:16:44

只需将要运行的命令放入文件中即可。

如果你想运行:

代码语言:javascript
复制
 cd "C:\Users\Adm" && dir

那么这就是你应该放在文件中的东西。

不要试图格式化或转义它,就好像它是Java代码一样。.txt文件不是用Java语言编写的,不使用或不遵守Java语法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51234253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档