關於讀寫串口程序打成jar包後功能失效的解決方案

  最近在做一個項目,關於遠程客戶端通過web形式訪問另一個客戶端,並對其客戶端串口進行讀寫操作,在經過幾天的摸索發現只有通過安裝插件的形式來實現比較合理,於是寫了一個小插件,安裝於客戶端進行監聽端口的操作。

    通過IDE運行插件進行測試,對於串口的遠程操作沒有任何的影響,但是當我們把操作串口的類封裝成jar包或者exe可執行程序後,發現程序運行出現找不到端口列的錯誤,這個的確讓人鬱悶,好好的程序打包後卻不好使...

    還以爲是打包的方式不對,於是換了好幾種打包方式,錯誤依然如故,同時在網上也找了大量的解決方法依然沒有獲得解決,就在心灰意冷的時候,突然看到這樣一句話,“Jbuilder 等開發工具在運行comm包的時候可以自動加載接口驅動,而不需要我們手工加入驅動代碼。 而當打好jar包之後,如果代碼裏沒有驅動還是什麼接口也打不開”。如果是這個原因的話,那就說明我們需要在代碼中加入初始化端口的驅動程序,於是加入下列代碼在事件中:

 

    System.loadLibrary("win32com");

    String driverName-"com.sun.comm.Win32Driver";

    CommDriver driver;

  try {

 

     driver=(CommDriver)Class.forName(driverName).newInstance();

    driver.initialize();

 

}

 

重新打包後運行,端口操作正常,看來還是羊毛出在羊身上不由興奮了一下,希望此貼能夠幫助到有同樣問題的朋友。

發佈了44 篇原創文章 · 獲贊 63 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章