2011-11-06 3 views
0

응용 프로그램이 플랫폼에 독립적이되도록 직렬 장치 (핸드 헬드 스캐너)와 통신하는 Java 응용 프로그램을 만들고 싶습니다. 몇 가지 코드 예제를 발견했습니다.이 코드를 Eclipse로 복사하면 javax.comm. *가 없습니다. Mac에 어떻게 설치합니까? 그리고 사용자가 아무것도 설치할 필요가 없도록이 라이브러리를 내 앱에 어떻게 추가합니까?Mac에 javax.comm API를 추가하십시오.

사용자에게 jar 파일과 장치를 제공하고 싶지만 거의 구성하지 않고 Windows/Mac/Linux에서 실행할 수 있어야합니다.

javax.comm.jar 파일을 다운로드 할 수있는 곳에서 다운로드를 찾았지만 다운로드에는 win32comm.dll이 포함되어 있습니다.이 파일은 몇 가지 방법에 종속되어 있습니다. 최소한 프로젝트에 jar 파일을 추가했을 때 오류가 발생했습니다. .

Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path 

답변

2

이것은 Java Communications API입니다. here을 얻을 수 있지만 도움이되지는 않습니다. 지원되는 플랫폼은 Solaris SPARC, Solaris x86 및 Linux x86입니다.

Mac 및 Linux의 경우 직렬 포트가 이미 구성되어 있으면/dev/ttyS0,/dev/ttyS1,/dev/ttyS2 등을 파일로 열어 읽고 쓸 수 있습니다. Windows에서 직렬 포트가 이미 구성되어 있으면 "COM1", "COM2"등을 열어 읽고 쓸 수 있습니다.

불행히도 javax.comm (참조 구현에서 제공됨)은 크로스 플랫폼이 아니므로 기본 네이티브 라이브러리를 번들링하거나 지원하는 클래스를 사용하거나 플랫폼에 종속적 인 방법을 사용하여 직렬 포트. Windows의 경우 "모드"명령 일 수 있으며 Mac/Linux의 경우 stty 명령 일 수 있습니다.

+0

그래서 플랫폼에 독립적 인 방식으로 serialport와 통신 할 수 있습니까? – lmkk

+0

나는 그것을 말하지 않았다. javax.comm/Java Communications API의 레퍼런스 구현은 플랫폼에 독립적이지 않습니다. J2SE API에는 직렬 포트와 통신 할 수있는 플랫폼에 독립적 인 방법이 없습니다. – user314104

2

나는 RXTX을 권하고 싶습니다. javax.comm 패키지는 사용하지 않지만 동일한 API를 사용합니다 (몇 가지 유용한 추가 사항이 있음).

E1 : 알다시피, RXTX 2.0은 javax.comm 패키지를 사용합니다. 같은 다운로드 페이지에서 찾을 수 있습니다.