多语言编程
我用c++做的一个对话框可以通过接收Java界面通过命令行传递的参数用exec来调用,但是Java怎么接收c++的数据呢?比如c++中用print输出到命令行, --------------------编程问答-------------------- java也可以哩。用System.out.println();可输出到命令行窗口。用runtime执行命令 --------------------编程问答-------------------- 不是啊,我用exec来启动c++的程序而且通过命令行给c++参数了,但是我还想c++把c++运算的结果给Java。
我不想用jni,因为,c++有好几个文件,头文件。 --------------------编程问答--------------------
try {--------------------编程问答-------------------- 开socket吧 --------------------编程问答-------------------- 我还没碰到过楼主类似的问题来着·· --------------------编程问答-------------------- 是这样的,Java界面上的按钮接收用户操作,我又用c++做了个对话框在被Java第一次调用时,对话框可见,让用户选择串口号,在用户按对话框确定后对话框隐藏,但为退出。但是我不知道怎样使得c++的那个程序只要运行起来就一直可以随时的接收Java传的参数,来按照Java传的参数给串口发送相应的数据,同时还能实时的给Java返回值 --------------------编程问答-------------------- JNA
// Execute command
String command = "ls";
Process child = Runtime.getRuntime().exec(command);
// Get the input stream and read from it
InputStream in = child.getInputStream();
int c;
while ((c = in.read()) != -1) {
process((char)c);
} in.close();
} catch (IOException e) {
... // do something
}
http://www.fengfly.com/plus/view-175722-1.html --------------------编程问答-------------------- 谢谢,我去找个com.sun.jna包
--------------------编程问答-------------------- package 混合编程试验;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jna.Library;
import com.sun.jna.Native;
class Main {
public static void main(String[] args) {
int m=CLibrary.INSTANCE.add(1,2);
}
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("test", CLibrary.class);
int add(int a,int b);
}
}
这个运行时为什么总出现这个错误
run:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'add': ÕҲ»µ½ָ¶¨µ
at com.sun.jna.Function.<init>(Function.java:126)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:219)
at com.sun.jna.Library$Handler.invoke(Library.java:191)
at $Proxy0.add(Unknown Source)
at 混合编程试验.Main.main(Main.java:7)
Java Result: 1
成功生成(总时间:2 秒)
其中的test.dll我已经放在正确的目录下了,而且,还做了个c++exe试验过,可以调用test.dll的,但为什么用Java调用时总出错? --------------------编程问答-------------------- 有点高级 --------------------编程问答--------------------
我也遇到了同样的问题,敢问LZ解决了么? --------------------编程问答-------------------- 我也是,请问怎么解决呢 --------------------编程问答-------------------- 通过共享的输入输出窗口来交换数据,比如在你打开c++程序时将你用Java打开的dos窗口的句柄给c++的程序,在c++程序中用这个dos窗口作为输出,java接收
补充:Java , Java SE