gpt4 book ai didi

java - 在 Runtime.exec() 中运行执行文件并获取用户输入

转载 作者:行者123 更新时间:2023-11-30 11:32:38 25 4
gpt4 key购买 nike

如何在 Java Runtime().exec() 中使用用户输入运行 c 执行文件。没有用户 在我的 C 程序中输入执行文件在 Runtime().exec() 中运行:

例如:下面的c程序如果n是预定义的并且它的执行文件运行在 java runtime()...如果n是用户输入如何运行执行文件?

#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main()
{
setbuf(stdout, NULL); //set buffer null
int i,n;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
printf("%d\n",i);
sleep(1); //delay
}
} //main

Java 代码....

import java.io.*; 
import java.lang.Runtime;
import java.lang.*;
import java.io.File;
import java.util.Timer;
import java.util.TimerTask;

public class run3
{
public static void main(String[] args)
{
try
{
String[] cmd = {"file path"};
Process p = java.lang.Runtime.getRuntime().exec(cmd);
String s;
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(p.getErrorStream()));

while ((s = stdInput.readLine()) != null)
{ System.out.println(s); }

System.out.println("Done.");
}//try
catch (IOException ex)
{ ex.printStackTrace(); }
} //void
} //main

最佳答案

有多种方法可以做到这一点,具体取决于您要实现的目标:

  • 最简单的方法是将 n 作为命令行参数传递。

  • 您可以让 C 程序从其标准输入读取 n ... 并使用 Process 对象的 从 Java 端写入它getOutputStream 方法。

  • 您可以让 C 程序打开“/dev/console”或“/dev/tty”并从那里读取 n。在 Windows 上,我相信您可以通过其他方式做到这一点。


好的。鉴于此,您只需调用 p.getInputStream(),将输入写入该流,然后将其关闭……尝试读取命令的输出之前。

关于java - 在 Runtime.exec() 中运行执行文件并获取用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com