javax.comm.properties 已经放在%JAVA_HOME%/jre/lib 下
   win32com.dll  已经放在%JAVA_HOME%/jre/bin 下
   comm.jar 已经放在%JAVA_HOME%/jre/lib/ext 下   在eclipse开发环境中运行可以读出端口,但将项目export为jar 包后独立运行就读不出。 
    
   请问这是什么原因。

解决方案 »

  1.   

    算了,我自己已经解决了。
    最终放弃了javax.comm.*,使用了RXTX
    1.将所有项目中用到的javax.comm相关的东西全删掉。包括win32com.dll,java.comm.properties,和comm.jar
    项目中的相关引用也去掉。
    2.下载最新的RXTX稳定版
    3.项目下建立lib目录,将用到的jar包和RXTXcomm.jar,rxtxParallel.dll,rxtxSerial.dll拷到这个目录。
    4.项目中引用RXTXcomm.jar 并将此jar 的Nativl library location设置为 lib目录
    5.建立MF文件,Class-Path 中配置所有引用的包和dll
    6.export jar原理参照以下代码:org.smslib.helper.CommPortIdentifier
    static
    {
    try
    {
    classCommPortIdentifier = Class.forName("javax.comm.CommPortIdentifier");
    }
    catch (ClassNotFoundException e1)
    {
    try
    {
    classCommPortIdentifier = Class.forName("gnu.io.CommPortIdentifier");
    }
    catch (ClassNotFoundException e2)
    {
    throw new RuntimeException("CommPortIdentifier class not found");
    }
    }
    try
    {
    Field f;
    f = classCommPortIdentifier.getField("PORT_SERIAL");
    PORT_SERIAL = f.getInt(null);
    }
    catch (Exception e)
    {
    throw new RuntimeException(e);
    }
    }
      

  2.   

    你那个用comm.jar的问题,如果你是在eclipse里能用,但是打完jar包后不能用,问题是出在你那两个文件放的位置不对,你放的位置是eclipse的jdk目录。
    就当个参考吧
    虽然晚了点
      

  3.   

    eclipse的JDK路径已经配置过了。
      

  4.   

    请具体讲一下第五步和第六步的具体使用
    5.建立MF文件,Class-Path 中配置所有引用的包和dll
    6.export jar