如果想你说的,java comm2.0 存在bug,又无法解决的话,你何不用JNI试试呢

解决方案 »

  1.   

    惭愧惭愧,我也是一只很菜的小鸟串口编程一般都是固定的,无非就是读取数据,写数据,设置串口参数,你可以按照JNI命名规范对windows相应的API进行封装,编程语言可以是VC或delphi等开发工具。如果你是用delphi进行开发的话需要一个pas文件,这个文件可以在网上找到,如果你用vc开发的话那就更方便了,java带有.h文件编写JNI,就是对dll中的函数命名有一定的要求当然如果java comm中的bug能搞定的话就更好了有什么问题可以通过[email protected]与我联系,其实我是一只很菜很快乐的鸟,从此飞到彼,从公司飞到家,从家飞到公司,我现在就要从公司飞到家了88,祝你好运
      

  2.   

    非常感谢!1、不管是用VC还是Java,都存在B/S模式的安全问题,VC写的组件在浏览器上运行也需要数字签名,我个人感觉比起Applet签名还要痛苦一些。
    2、我最主要的还是想确认一下,这条路子到底有没有人走过?是否真的能行得通?从Sun的论坛上看,似乎国外有不少的人这样做过,但是在国内的网站都没有人讨论过。
    3、再一次表示感谢,请问您做通了B/S模式的读写串口程序么?不管是用什么,只要是做通了告诉我一声,确认一下!谢谢。
      

  3.   

    第五步错误原因分析:
    JVM自带的ClassLoader没有检测共享Class区,造成Win32Driver重复从本地调用。
    JBuilder 帮助中说:
    The same JNI native library cannot be loaded into more than one class loader. Doing so causes UnsatisfiedLinkError to be thrown. For example, System.loadLibrary throws an UnsatisfiedLinkError when used to load a native library into two class loaders.但是没有给解决办法.请问有没有明白的.
      

  4.   

    哈哈,老兄碰到我一莫一样的问题了
    告诉你吧,你的win32com.dll在其他的地方,已经默认加载了
    你只留C:\Program Files\Java\j2re1.3.1_02\bin目录下的win32com.dll动态库
    其它的地方的统统删掉,包括c:/winnt/system32/底下的,明白吗?
      

  5.   

    放心好了,绝对可以的,我也是搞这个comm's Applet弄得烂额,终于修成正果
    我也是偶然看到你这个贴子的,不然的话,你又要费我一样的功夫了!
    祝你成功,200分到手了,哈哈!
      

  6.   

    to  cyberwjw(cyberwjw):
      200分,确实是你的。但是要说明一下,问题的原因所在:  问题并不是win32com.dll不能拷贝到其他地方,而是:Comm.jar不能拷贝到\jre\lib\ext\目录里面.
      本来是按照Forum.java.com的说明来得,所以拷贝到了这个目录,现在把它删除了,可以在浏览器中检测到Com串口.  但是,同时问题又出来了:
      Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver
      这个错误又出现了.  因为我现在的机器没有串口线,不能测试,请问cyberwjw(cyberwjw),你的程序出现这个错误么?这个错误影响最终获取串口数据么?你的最终实现还有什么问题?请不吝赐教,非常感谢.  最好能留一个更便捷的联系方式,好好的想您讨教这个问题.
      

  7.   

    把这个问题弄透彻,放到FAQ里面,以后的兄弟们遇到这个问题不用再花费精力了.
      

  8.   

    listening(zqy) :你的程序如果在本机可以运行的话,数字签名后在其他机器一定也可以。只是问题在这个地方:你在客户机上安装的是标准的J2SE(因为你不能肯定别人安装会你的程序做特别安装其他的API),他只有基本的API的JAR,其他的JAR,比如提供串口开发的Javacomm的jar文件,这些文件都必须做数字签名,并放在APPLET的archive中,比如我的程序中使用了MS的数据库驱动,就签名后放在其中,这样就可以通过客户端访问其他的数据库了<applet
      codebase = "."
      code     = "applet.BookBaseInfoMigrateApplet.class"
      archive  ="jar/bookinfomigrate.jar,jar/msbase.jar,jar/mssqlserver.jar,jar/msutil.jar";
      name     = "TestApplet"
      width    = "750"
      height   = "440"
      hspace   = "0"
      vspace   = "0"
      align    = "middle"
    >
    </applet>
      

  9.   

    这个你可以通过在JB中运行,知道他除了需要J2SE中的JAR外还包含了哪些JAR,把这些JAR都签名了放在你的页面中就可以了
      

  10.   

    to:listening(zqy) :
    你说的那个问题我至今也会出现,在sun公司的论坛看了一下,即说comm.jar有个小bug,这是老外
    反编译出来的,但是这不会影响程序的运行。我通过签名applet可以在网页上发卡、读卡等操作了。可能以后属性文件或者其他的配置文件,还需要自己写代码自己加载,它在网页中调用的时候找不到属性文件,祝你好运。
    我的MSN:[email protected]
    OICQ:85221523
      

  11.   

    to cyberwjw(cyberwjw):
      好的!明白!200分都给你。