Java 如何编写代码来模拟命令<;file.txt
我正在开发需要模拟以下内容的java代码:Java 如何编写代码来模拟命令<;file.txt,java,Java,我正在开发需要模拟以下内容的java代码: my_命令
my_命令
我试过写STDIN,但它似乎不是解决方案
已经有人开发了吗
注意,在下面的代码中,
source
是java.io.File
String commandLine = "myCommand";
Process process = Runtime.getRuntime().exec(commandLine);
new Thread(() -> {
try (BufferedWriter stdin = new BufferedWriter(new OutputStreamWriter(process.getOutputStream()));
Scanner scanner = new Scanner(source)
){
String line;
while (scanner.hasNext()) {
line = scanner.nextLine();
stdin.write(line);
System.out.print(line);
}
stdin.flush();
} catch (IOException e) {
e.printStackTrace();
}
}).start();
int ret = process.waitFor();
仅供参考,我的命令是mysqlmysql
您应该使用class(而不是classRuntime
)
我不知道my_命令是什么,所以下面的代码使用
首先,我创建包含我希望执行的cleartool子命令的文本文件
hostinfo
出口
(注意文件的最后一行是空的。)我将此文件命名为
exits\u ct.txt
现在是运行cleartool命令的java代码,然后从文本文件中输入子命令,并将命令输出打印为标准输出
导入java.io.File;
导入java.io.IOException;
公共类PrcBldTs{
公共静态void main(字符串[]args){
ProcessBuilder pb=新的ProcessBuilder(“cleartool”);
重定向输入(新文件(“exits_ct.txt”);
重定向输出(ProcessBuilder.Redirect.INHERIT);
重定向错误(ProcessBuilder.Redirect.INHERIT);
试一试{
Process proc=pb.start();//抛出java.io.IOException
int result=proc.waitFor();//抛出java.lang.InterruptedException
System.out.println(“结果:+result”);
}
捕获(IOException | InterruptedException x){
x、 printStackTrace();
}
}
}
当我运行上述代码时,我得到以下输出:
MY_COMP:ClearCase9.0.0.0(WindowsNT6.2(Build9200)奔腾)
结果:0
那么您是用java打开该文件(“file.txt”)并将其内容写入stdin,还是只是将“file.txt”写入stdin?如果是前者,请在问题中添加您的代码。您的意思是?@FedericoklezCulloca yes