java - 使用 get.Runtime.exec() 运行 Bin 文件?

标签 java runtime.exec

这是 hello.exe 的 C++ 代码:

#include<iostream.h>
#include<conio.h>
int  main()
{
  cout<<"Hello world\n";
  getch();
  cout<<"I bypass error\n";
  return 0;
}

我需要从 Java 程序运行 hello.exe。

我想学习Java,以便调用子进程bin文件并将IO的控制执行发送到这些bin文件。

就像在这个 hello.exe 中一样,它将打印 hello world,如果我能够输入该值,那么只有我能够看到“我绕过错误”。

这是我的 Java 程序:

package procs;

import java.io.*;
import java.lang.*;
import java.util.*;

public class Procs
{
   public static void main(String[] args)
   {

      Scanner scan = new Scanner(System.in);

      try
      {
         int exitVal;
         char c = 'a';
         Process process = Runtime.getRuntime().exec(new String[]{"C:/hello.exe"});
         OutputStream stdin = process.getOutputStream();
         InputStream stderr = process.getErrorStream();
         InputStream stdout = process.getInputStream();

         BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));
         //PrintStream writer = new PrintStream(new BufferedOutputStream(stdin));
         //BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));
         // i uses both printstream and Buffered writer

         System.out.println("lets start<<<<<<");
         do
         {
            c = (char)reader.read();
            System.out.print(c);
         }
         while (c != '\n');
         //writer.Print(c);  i uses  both print
         //writer.write(c);  and the writer
         writer.flush();
         do
         {
            c = (char)reader.read();
            System.out.print(c);
         }
         while (c != '\n');
         exitVal = process.waitFor();
         System.out.println("Exited with error code " + exitVal);
      }
      catch (Exception e)
      {
         e.printStackTrace();
      }
   }
}

它卡在 lets start<<<<< 之后

它甚至没有显示 hello world

也帮我完成这部分:

exitVal=process.waitFor();

像这样我们有一些暂停命令来暂停进程的执行

最佳答案

在 C++ 中,getch(); 不起作用。使用

int a;
cin>>a;

相反。

关于java - 使用 get.Runtime.exec() 运行 Bin 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16742317/

相关文章:

java - 为交易系统设计订单对象

java - Runtime.getRuntime().exec 提示时传递参数

java - 如何在 Java 中运行 Linux 命令?

java - 使用 Java 的 runtime.exec 进行 Shell (bash) 大括号扩展

android - 需要在 Runtime.getRunTime().exec 上执行多个命令

java - Apache Beam 使用多个表时有多少写入次数

java - 如何在java中并行运行2个任务?

java - 在java中改变语言

java - 如何在 Netbeans 测试结果中查看集成测试?

java - 在生产中进行线程转储