读取串口 :javax.comm 2.0 windows下Eclipse的配置
生活随笔
收集整理的這篇文章主要介紹了
读取串口 :javax.comm 2.0 windows下Eclipse的配置
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
javax.comm 2.0? windows下Eclipse的配置???? ?
要在Windows下,對計算機(jī)的串口或并口等進(jìn)行編程,可以選擇使用Java Communication API (javax.comm)包,現(xiàn)在最新的版本是3.0版本,但是3.0版本并沒有支持windows系統(tǒng)的,只有Linux和Solaris,所有我們只能找原來的2.0的版本了。http://llk.media.mit.edu/projects/cricket/software/javaSerial.zip(兩個文件夾里面有所需的3個文件),http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip和(完整的2.0版本,還有examples)。這兩個網(wǎng)址上就有2.0版本。如果在Linux下3.0就更加多了,當(dāng)然官方網(wǎng)站是首選了http://java.sun.com/products/javacomm/。介紹串口編程的文章很多,我自己的學(xué)習(xí)也是從這些資料中所得,所以這里我不在此一一列舉代碼了。只把重點放在Eclipse的配置上,怎樣加入這三個文件。
???? 當(dāng)然,我們必須有一段測試代碼來來測試是否加入包成功了,所以我在這里給出測試代碼。、
Code
import?java.util.Enumeration;
import?javax.comm.CommPortIdentifier;
public?class?TestSerial?{
????/**?*//**
?????*?@param?args
?????*/
????public?static?void?main(String[]?args)?{
?????????listPortChoices();?????
????}
????public?static?void?listPortChoices()?{
????????CommPortIdentifier?portId;
????????Enumeration?en?=?CommPortIdentifier.getPortIdentifiers();
????????//?iterate?through?the?ports.
????????while?(en.hasMoreElements())?{
????????????portId?=?(CommPortIdentifier)?en.nextElement();
????????????if?(portId.getPortType()?==?CommPortIdentifier.PORT_SERIAL)?{
????????????????System.out.println(portId.getName());
????????????}
????????}
????}
}
ok,以上一段測試代碼的含義很簡單,是用一個枚舉將機(jī)器上所有端口名遍歷并輸出一遍,其中CommPortIdentifier是通訊端口管理的類,具體請查閱javaAPI,在這里主要將配置。
????? 首先來介紹我的方法和我遇到的問題:comm.jar,javax.comm. properties和win32comm.dll。將文件comm.jar拷貝到%JAVA_HOME%\jre\lib\ext;文件 javax.comm. properties拷貝到%JAVA_HOME%\jre\lib; 文件win32comm.dll拷貝到%JAVA_HOME%\bin。注意%JAVA_HOME%是jdk的路徑,而非jre。比如說我自己的機(jī)器的%JAVA_HOME%\是D:\Program Files\Java\jdk1.6.0_11。但具體拷貝到哪個文件夾下,還是有待商榷的,可能由于版本的不同吧。
?????? 導(dǎo)入后,在Eclipse的工程中加入jar包,“工程右鍵-> properties-> java?? build?? path?? ->?? libraries?? ->?? add?? external?? jar”去找到你所放置的comm.jar的位置就可以了。好,下面就可以運(yùn)行了。
?????? 如果運(yùn)行結(jié)果為空,什么輸出都沒有,一般不太可能是你的機(jī)器沒有串口,不行去掉 if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) 試試看,不會連并口都沒有吧?大多情況下是沒有找到j(luò)avax.comm. properties文件,那你把它再放到JreDIR/jre/lib吧,我的機(jī)器是 D:\Program Files\Java\jre6\lib里面,這個時候應(yīng)該就好了。
?????? 如果出現(xiàn)的錯誤結(jié)果是,沒有找到comm.jar的紅色錯誤信息,那么也放到j(luò)re的bin里面就可以了,我機(jī)器是D:\Program Files\Java\jre6\bin中。Eclipse是先找javax.comm. properties文件的,然后再找win32comm.dll,所以如果是沒有顯示端口時,可能dll也不一定配好了。正常之后我的機(jī)器輸出的串口是COM3,去掉if條件后輸出的是COM3 LPT1 LPT2,我調(diào)試的機(jī)器是一臺筆記本,是沒有串口的那種,只有通訊端口一個 RIM Virtual Serial Port v2 (COM3)而已。好了如果輸出正常,就說明弄好了,enjoy it.
要在Windows下,對計算機(jī)的串口或并口等進(jìn)行編程,可以選擇使用Java Communication API (javax.comm)包,現(xiàn)在最新的版本是3.0版本,但是3.0版本并沒有支持windows系統(tǒng)的,只有Linux和Solaris,所有我們只能找原來的2.0的版本了。http://llk.media.mit.edu/projects/cricket/software/javaSerial.zip(兩個文件夾里面有所需的3個文件),http://mdubuc.freeshell.org/Jolt/javacomm20-win32.zip和(完整的2.0版本,還有examples)。這兩個網(wǎng)址上就有2.0版本。如果在Linux下3.0就更加多了,當(dāng)然官方網(wǎng)站是首選了http://java.sun.com/products/javacomm/。介紹串口編程的文章很多,我自己的學(xué)習(xí)也是從這些資料中所得,所以這里我不在此一一列舉代碼了。只把重點放在Eclipse的配置上,怎樣加入這三個文件。
???? 當(dāng)然,我們必須有一段測試代碼來來測試是否加入包成功了,所以我在這里給出測試代碼。、
Code
import?java.util.Enumeration;
import?javax.comm.CommPortIdentifier;
public?class?TestSerial?{
????/**?*//**
?????*?@param?args
?????*/
????public?static?void?main(String[]?args)?{
?????????listPortChoices();?????
????}
????public?static?void?listPortChoices()?{
????????CommPortIdentifier?portId;
????????Enumeration?en?=?CommPortIdentifier.getPortIdentifiers();
????????//?iterate?through?the?ports.
????????while?(en.hasMoreElements())?{
????????????portId?=?(CommPortIdentifier)?en.nextElement();
????????????if?(portId.getPortType()?==?CommPortIdentifier.PORT_SERIAL)?{
????????????????System.out.println(portId.getName());
????????????}
????????}
????}
}
ok,以上一段測試代碼的含義很簡單,是用一個枚舉將機(jī)器上所有端口名遍歷并輸出一遍,其中CommPortIdentifier是通訊端口管理的類,具體請查閱javaAPI,在這里主要將配置。
????? 首先來介紹我的方法和我遇到的問題:comm.jar,javax.comm. properties和win32comm.dll。將文件comm.jar拷貝到%JAVA_HOME%\jre\lib\ext;文件 javax.comm. properties拷貝到%JAVA_HOME%\jre\lib; 文件win32comm.dll拷貝到%JAVA_HOME%\bin。注意%JAVA_HOME%是jdk的路徑,而非jre。比如說我自己的機(jī)器的%JAVA_HOME%\是D:\Program Files\Java\jdk1.6.0_11。但具體拷貝到哪個文件夾下,還是有待商榷的,可能由于版本的不同吧。
?????? 導(dǎo)入后,在Eclipse的工程中加入jar包,“工程右鍵-> properties-> java?? build?? path?? ->?? libraries?? ->?? add?? external?? jar”去找到你所放置的comm.jar的位置就可以了。好,下面就可以運(yùn)行了。
?????? 如果運(yùn)行結(jié)果為空,什么輸出都沒有,一般不太可能是你的機(jī)器沒有串口,不行去掉 if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) 試試看,不會連并口都沒有吧?大多情況下是沒有找到j(luò)avax.comm. properties文件,那你把它再放到JreDIR/jre/lib吧,我的機(jī)器是 D:\Program Files\Java\jre6\lib里面,這個時候應(yīng)該就好了。
?????? 如果出現(xiàn)的錯誤結(jié)果是,沒有找到comm.jar的紅色錯誤信息,那么也放到j(luò)re的bin里面就可以了,我機(jī)器是D:\Program Files\Java\jre6\bin中。Eclipse是先找javax.comm. properties文件的,然后再找win32comm.dll,所以如果是沒有顯示端口時,可能dll也不一定配好了。正常之后我的機(jī)器輸出的串口是COM3,去掉if條件后輸出的是COM3 LPT1 LPT2,我調(diào)試的機(jī)器是一臺筆記本,是沒有串口的那種,只有通訊端口一個 RIM Virtual Serial Port v2 (COM3)而已。好了如果輸出正常,就說明弄好了,enjoy it.
轉(zhuǎn)載于:https://www.cnblogs.com/tuleqi/archive/2009/08/28/1555678.html
總結(jié)
以上是生活随笔為你收集整理的读取串口 :javax.comm 2.0 windows下Eclipse的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring中AOP的使用
- 下一篇: 销售人员的面试技巧