java中调用C语言生成的exe文件

来源:互联网 发布:linux脚本文件格式 编辑:程序博客网 时间:2024/04/29 00:31

C语言程序实现:

输入两个整数,输出二者之和

# include <stdio.h>
int main()
{
    int a,b,lineNumber=0;
    while(scanf("%d %d",&a,&b)!=EOF){
        printf("Line# %d\t %d +  %d=%d\n",lineNumber,a,b,a+b);
    }
    return 0;
}

java程序:

主进程调用exe文件,新建一个线程向exe文件写入输入数据,然后主进程输出

package bjfu.wzz;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;

public class my_javac {

    public static void main(String[] args) {
       try {
        final Process proc=Runtime.getRuntime().exec("D:\\code\\C\\muy_c\\Debug\\myc.exe");
        new Thread() {
            public void run() {
                OutputStream stdin=proc.getOutputStream();
                for(int i=0;;i++) {
                    try {
                        Thread.sleep(1);
                        stdin.write((i + " " + i + "\n").getBytes());
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    }
            }
        }.start();
        BufferedReader stdout = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        for (String line; null != (line = stdout.readLine()); )
            System.out.println(line);
       } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
       
    }

}


0 0
原创粉丝点击