前一段时间编写了一个串口应用程序,在JBuilder9中运行一切正常。能发能收。可生成.exe文件后程序能打开可是什么反应也没有,不能发也不能收。而且生成.exe文件时也不能马上成功,需要等很长时间它才能生成。请都各位大侠给指点一二!!谢谢

解决方案 »

  1.   

    我现才发现在生成JAR文件时就不好使了,我看java.comm.*这个扩展类已经加进去了,可是好像不执行这个扩展类啊,求教高人!!谢谢了
      

  2.   

    先不要生成exe的文件,先生成jar文件,看看调用是否正常,估计exe没有反应是后台已经报错了还有使用JBX+sp,或是JB2006+SP吧,JB9即使打了补丁,也有不少bug
      

  3.   

    jar正常了以后,就生成带控制台的exe文件,看看是否正常,都可以了在生成纯的exe文件
      

  4.   

    我的机器太慢了,用JB2006运行不起来。我先生成JAR文件也不好使,都是一样的错误。我的感觉就是找不到串口!
      

  5.   

    环境是一样的,所以应该都可以找到串口,不过最保险的办法就是在控制台执行jar文件的时候,看看那控制台里面打印的信息是不是报错
    看看错误是什么,一般都能找到问题所在
      

  6.   

    你怎么执行jar的?
    应该是在dos窗口下执行  java -jar xxx.jar
    这样执行的,所以如果 xxx.jar报错了,应该会打印在dos窗口里面
      

  7.   

    首先要确认是否获得了可以使用的COM口
    Enumeration en = CommPortIdentifier.getPortIdentifiers();
            if(en!=null)
            {
                CommPortIdentifier portId = null;
                while (en.hasMoreElements()) {
                    portId = (CommPortIdentifier) en.nextElement();
                    /*如果端口类型是串口,则打印出其端口信息*/
                    if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                        arrayList.add(portId.getName());
                    }
                }
            }
    这段是关键,记录一下arrayList的长度和内容看看,就是添加 System.out.println();这样的调试信息看看,是否获得了COM,如果没有获得,而在JB里面能获得,那么多半是配置问题
      

  8.   

    CommPortIdentifier portId;    Enumeration en = CommPortIdentifier.getPortIdentifiers();
       
        while (en.hasMoreElements()) {
          portId = (CommPortIdentifier) en.nextElement();
          if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
            choice1.add(portId.getName());
          }
        }
        choice1.select(parameters.getPortName());这段程序好像就不执行!!!
      

  9.   

    所谓的配置问题就是由于 JB使用的JDK和在DOS窗口里面调用的JDK不一样造成的,也就是(例如windows) win32com.dll和javax.comm.properties 要拷贝到dos里面调用的JDK的对应目录
      

  10.   

    这个我也做了好多遍了,反是JDK和JB里相的目录我都放了相同的文件.win32.dll和javax.comm.properties
      

  11.   

    应该是JDK没有搞对,调试过很多这样的问题,最后都是没有放对造成的
      

  12.   

    也有可能在dos里面执行的是jre,而不是jdk
      

  13.   

    我刚才又调试了一遍,都是按comm.jar那里给的说明文件弄的啊。不过我用的JDK是1.4.2说明文件是JDK1.2的,不知道有没有什么不同。
      

  14.   

    看看你的机器安装了几个jdk和jre 然后都要把win32.dll和javax.comm.properties
    拷贝到对应的目录中
      

  15.   

    我就装了个jdk1.4.2再就是JB自带的jdk1.4了,这两个我全装了。我现在也认为是这里的问题,可是怎么也改不对!
      

  16.   

    太谢谢你了,我找到了!我安jdk时安的C盘根目录下了,可是它自动在program下安了一个,把那两文件添进去就好了!十分感谢!!