首先,java和c语言中发生关系主要通过两种方式:JNI或者本地指令方式。
1.JNI使用分为java调c;c调java
java调用c时,先loadLibrary。使用JNI接口封装,定义接口。
c调用java时,开一个JVM。JVM指定入口,使用java解释器执行。JVM作为c的子进程,可以使用父子进程的通信机制。
2.本地指令方式。java中调用系统执行程序。
直接调用c程序
shell脚本中可以启动任何c语言程序。shell脚本具有更大的灵活性。
实现:使用process类
Process pro=Runtime.getRuntime().exec(String[] cmdarray)
pro.getInputSream();
pro.getOutputSream();
pro.getErrorSream();
注意:shell语句使用管道的话应该使用以下的方式
String[] cmds = {"/bin/sh", "-c", "ps -ef | grep java"};
Process pro=Runtime.getRuntime().exec(cmds);