我用c++做的一个对话框可以通过接收Java界面通过命令行传递的参数用exec来调用,但是Java怎么接收c++的数据呢?比如c++中用print输出到命令行,

解决方案 »

  1.   

    java也可以哩。用System.out.println();可输出到命令行窗口。
    用runtime执行命令
      

  2.   

    不是啊,我用exec来启动c++的程序而且通过命令行给c++参数了,但是我还想c++把c++运算的结果给Java。
    我不想用jni,因为,c++有好几个文件,头文件。
      

  3.   

    try { 
        // 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
      

  4.   

    是这样的,Java界面上的按钮接收用户操作,我又用c++做了个对话框在被Java第一次调用时,对话框可见,让用户选择串口号,在用户按对话框确定后对话框隐藏,但为退出。但是我不知道怎样使得c++的那个程序只要运行起来就一直可以随时的接收Java传的参数,来按照Java传的参数给串口发送相应的数据,同时还能实时的给Java返回值
      

  5.   

    JNAhttp://www.fengfly.com/plus/view-175722-1.html
      

  6.   

    谢谢,我去找个com.sun.jna包
      

  7.   

    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调用时总出错?
      

  8.   

    通过共享的输入输出窗口来交换数据,比如在你打开c++程序时将你用Java打开的dos窗口的句柄给c++的程序,在c++程序中用这个dos窗口作为输出,java接收