在WEBSTART中实现串口通信(WINDOWS版)
在WEBSTART中實現串口通信(WINDOWS版)
看到這個題目,你是不是問:這跟在JAVA中實現串口通信有什么區別?在JAVA中能做在WEBSTART中不就
一樣嗎?
真聰明,的確是這樣的,但事實也存在一些不同,等我慢慢講述。
目前,在要JAVA中實現串口通信,一般都去SUN網站下載相應的開發包,其中主要包括一個comm.jar,一個
win32comm.dll,一個屬性文件(javax.comm.properties)。
然而最近我去找時,卻發現最新版(3.0)只提供solaris和linux版本的下載,并不在技持WINDOWS版(
找了好些論壇,好象是說微軟改了其中的某些東東倒致可能出現的不兼情況,所在干脆不做了,真不
負責),相關的討論可以訪問以下地址:
http://swforum.sun.com/jive/thread.jspa?threadID=59439
其中還提供了一個下載串口API 2.0的地址:
http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=7235-javacomm-2.0-spec-oth-JSpec&SiteId=JSC&TransactionId=noreg
不過既然它們不再提供WINDOWS版本,用起來還是有一些擔心,也找了一些可用的開源實現(http://republika.pl/mho/java/comm/),
如http://www.rxtx.org
不過后來處于穩定安全起見,還是選用的SUN的2.0實現,下載下來是javacomm20-win32.zip文件,里面主是
是我上面所述的三個文件。關于其使用的貼子網上有很多,隨便GOOGLE一下就幾十篇,大致是把什么拷貝到
什么地方之類的,得確可以運行。
在要發布為WEBSTART就不一樣了,主要不一樣:
1、不可能讓用戶為這個功能去手工拷貝這些文件
2、而且最好不要在用戶的JRE下做任何事情,這樣比較有道義。
3、SUN COMM API在找其配置文件(一起下載的properties,實際就是驅動的實現配置)方式有點
不太好:先去JRE的LIB下找,沒找到的話,再找COMM.jar在哪,找到后在其同目錄下找,找不到就出錯
(其中還有一段代碼,好象是找java.comm.properties屬性值,可找到以后也沒用,拉圾代碼!)。
這什么找法,你直接在CP中找不就很簡單嗎,再加個默認實現(就象XML 解析器一樣),一切就很完美了。
也難怪,也許SUN隨便安排了個人作作,沒把這當回事。
4、照SUN的那種找法,現在問題來了,如何把配置文件隨WEBSTART一下下載并且讓javax.comm.找到呢?
WEBSTART下載的東西只能是:圖象/JAR/JNLP,入到JAR里肯定是找不到的(為什么找不到,看看其查找
的機制)
有了這些不同,現在該知道按普通玩法根本不行了吧!!!
其實想了好多方法,也沒找出一個好方法,最好只好來硬的了。
javax.comm.CommPortIdentifier是一個初始化相關的類,一切有關配置的加載之類的代碼都有在這里
直接更改這個代碼,將加載配置的方式改為在CLASSPATH中加載,加載不到時,直接用默認的SUN實現。
一切就OK了。其中還涉及到一些細節部分的修改,在這里就不詳細說明了。
當然這也不是一個長久的辦法,今后在WINDOWS下使用串口,要不只能自己從頭開發或是選用開源了。
誰叫SUN不做了呢。
總結
以上是生活随笔為你收集整理的在WEBSTART中实现串口通信(WINDOWS版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中文问题详解
- 下一篇: 职业病