在这个版里问问题,自然是打算用java来实现整个系统啦....-_-||

解决方案 »

  1.   

    和管道通讯有毛关系。 你主要是想编译 管道通讯 只是传送。关注Java
      

  2.   

    编译链接都OK,是在程序执行时,
    比如那个是一个C++程序,它有cin>>n这样的语句,
    那我在用java调用执行改程序时,怎么给这个程序输入数据?
    随便用什么方法都行.
      

  3.   

    没整过这么高级东西。
    如果用java输入,就牵扯到io流。
    还有java与c++的通信用jni也就是java调用C++;
    如果是这校样的话你还不如用java重写你的业务逻辑。
      

  4.   

    java中有个jmx的玩意可以操作内存中的变量 不知道是不是你要的。
      

  5.   

    long start = System.currentTimeMillis();
    // 要计时的运算代码放在这儿
    long time = System.currentTimeMillis() - start;
    System.out.println(time);1.
    import java.net.*;
    import java.io.*;
    import java.util.*;public class NameCollector {
      final static int COLLECTOR_PORT = 8080;
      final static int BUFFER_SIZE = 1000;
      byte[] buf = new byte[BUFFER_SIZE];
      DatagramPacket dp = 
        new DatagramPacket(buf, buf.length);
      // Can listen & send on the same socket:
      DatagramSocket socket;
      Process listmgr;
      PrintStream nameList;
      DataInputStream addResult;
      public NameCollector() {
        try {
          listmgr =
            Runtime.getRuntime().exec("listmgr.exe");
          nameList = new PrintStream(
            new BufferedOutputStream(
              listmgr.getOutputStream()));
          addResult = new DataInputStream(
            new BufferedInputStream(
              listmgr.getInputStream()));    } catch(IOException e) {
          System.err.println(
            "Cannot start listmgr.exe");
          System.exit(1);
        }
        try {
          socket =
            new DatagramSocket(COLLECTOR_PORT);
          System.out.println(
            "NameCollector Server started");
          while(true) {
            // Block until a datagram appears:
            socket.receive(dp);
            String rcvd = new String(dp.getData(),
                0, 0, dp.getLength());
            // Send to listmgr.exe standard input:
            nameList.println(rcvd.trim());
            nameList.flush();
            byte[] resultBuf = new byte[BUFFER_SIZE];
            int byteCount = 
              addResult.read(resultBuf);
            if(byteCount != -1) {
              String result = 
                new String(resultBuf, 0).trim();
              // Extract the address and port from 
              // the received datagram to find out 
              // where to send the reply:
              InetAddress senderAddress =
                dp.getAddress();
              int senderPort = dp.getPort();
              byte[] echoBuf = new byte[BUFFER_SIZE];
              result.getBytes(
                0, byteCount, echoBuf, 0);
              DatagramPacket echo =
                new DatagramPacket(
                  echoBuf, echoBuf.length,
                  senderAddress, senderPort);
              socket.send(echo);
            }
            else
              System.out.println(
                "Unexpected lack of result from " +
                "listmgr.exe");
          }
        } catch(SocketException e) {
          System.err.println("Can't open socket");
          System.exit(1);
        } catch(IOException e) {
          System.err.println("Communication error");
          e.printStackTrace();
        }
      }
      public static void main(String[] args) {
        new NameCollector();
      }
    } ///:~
    2.
    这个你自己想吧,我也不知道
      

  6.   

    你的 意识是JAVA和C++通信?