java中调用C语言生成的exe文件
2016-12-10 14:50
197 查看
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();
}
}
}
输入两个整数,输出二者之和
# 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();
}
}
}
相关文章推荐
- 自动生成Jni中Java调用C语言实现的签名函数名
- 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写
- 使用java调用C语言的方法,让java获取串口数据并生成一个String对象的代码。
- 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写
- java 解决调用c语言实现简单HelloWorld函数生成.dll动态链接库的32位dll文件无法在64位机上运行
- 在java里调用已经生成的exe文件
- 怎么根据linux c/c++ 开发的d-bus服务生成java 的调用接口文件
- C语言生成DLL供C#调用
- Java中调用C/C++生成的DLL
- JNI 使用总结 (JAVA 调用C语言编写的DLL/SO/SL文件)
- java中调用c/c++生成的dll
- linux下 java JNI调用C语言动态链接库
- C语言调用 Java(Linux)
- Java调用C语言DLL文件方法
- Java进阶: 使用 Jni 调用 Dll 的实现(使用VS2008 生成Dll)
- Java通过JNI调用C语言的方法
- Java通过JNI调用C语言的方法
- [Java]Java中调用C/C++生成的DLL(转) (2007-05-16 23:51:44)
- JAVA中调用C/C++生成的DLL
- 用JNI技术Java调用dll文件(由lib文件生成)