본문 바로가기

Programming

How to use RxTx libraries, error/bug. RxTx Serial 통신 라이브러리 사용 방법,에러,버그 / Java

How to use RxTx libraries, error/bug. RxTx Serial 통신 라이브러리 사용 방법,에러,버그 / Java

 

 

 I got error msg "package gnu.io does not exist", when I make jar file with all jar,dll in the project. 

 

referenced stackoverflow ( HERE )

 
 

 나의 경우에는 예전에 이미 만들어진 lib 클래스를 사용하거나, jar 파일로 묶는 과정에서 "package gnu.io does not exist" 에러가 발생했다.

 

stackoverflow 에서 참조 ( 여기 )

 

 

 추가로, RxTx Serial 통신 라이버리 고질적인 문제가 있다.

아래와 같이, 통신 중에 하드웨어와의 연결이 잠깐 끊어지는 타이밍이 맞으면 Exception 발생해서 죽어버린다.

https://github.com/NeuronRobotics/nrjavaserial/issues/67

 

 

 기본적으로 필요한 jar 파일은 해당 경로를 찾아서 user library 에다가 추가를 해두고, build path 에서 user lib 추가를 해둔다. (프로젝트마다)

 

 OpenCV, Tensorflow, RxTx 등 외부 라이버리를 Eclipse 에서 추가할 시에 공통적으로 해당이 되는 것인데,

 

1. 일단 유저 라이브러리를 만들어준다. 예를 들면, Opencv 라는 유저 라이버리를 만들고, 그 안에 opencv-320.jar 와 같은 파일을 연결해준다.

 -> 이 때, 외부 라이버리의 jar 파일 경로를 잡아준 것은 IDE 내에서 package 경로를 잡을 때 써줄 것이고

 -> 이 후에 실행 jar 파일을 만들어서 사용하는 외부 라이버리는 해당 jvm 에서 jre 가 외부 라이버리를 갖는 경로에 추가를 해주거나.. (폴더를 같이 이동)

 -> 아니면.. 본인은 실행 jar 파일 내에 간단한 lib 파일은 넣어두고, 실행 시 lib 를 해당 os에 임시파일로 만들어 읽어서 사용하고 삭제한다.

 

2. 만들어준 user library 를, 넣고 싶은 프로젝트의 build path 에서 add library 버튼을 눌러 user library 를 선택하고, 추가해준다.

 

3. 그렇게 하면 일단 프로젝트 내에서 패키지를 가져다가 코딩이 가능하고 실행도 가능하다.

 

 

 Basically, add needed jar files to the user library, add user library to each project you need in build path.

 

It's common things for adding external libraries, such as OpenCV, Tensorflow, RxTx, to IDE (Eclipse),

 

1. Make user library first. e.g. make user library like Opencv, and add jar file like opencv-320.jar.

 -> In that case, external library path in user library is used for package path in IDE

 -> if you make executable jar file later, then you need to copy library jar file to each path in that device (e.g. dll, jar file directory)

 -> or.. In my case, I usually insert small library files in the executable jar file, and load them, make temp files in each OS, use them, and delete them at the finish time.

 

2. Anyway, add user library to the project you want. Click build path, add library, and user library to add.

 

3. Once you make user library and add that, you can load package from that library.

 

 

 

 

 

 문제가 되었던 것은, gradle 로 jar 파일로 묶어주는 태스크에서 아래의 메시지가 떴다.

 

 

"package gnu.io does not exist" 메시지의 이유는 dll 파일과 jar 파일이 jvm 내 경로에 제대로 위치하지 않아서? 였다.

 

The message "package gnu.io does not exist" is caused by that the location of the files (dll, jar) were not in the correct path in jvm.

 

 

Solution. 해결했던 방법

 

 

copied rxtxSerial.dll to C:\Program Files\Java\jdk1.7.0_07\jre\bin

 

copied RXTXcomm.jar to C:\Program Files\Java\jdk1.7.0_07\jre\lib\ext

 

dll 파일은 -> jdk 설치경로 / jre / bin / * 에 놓아준다.

 

jar 파일은 -> jdk 설치경로 / jre / lib / ext / * 에 놓아준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Something else you might like...?

 
 
 
 

2019/01/14 - [Programming/Java] - 자바 메모리 누수 체크/확인/고치는 방법, Memory leak check/fix in Java application, cleanCode/좋은코드/oop/객체지향

 

2018/12/28 - [Programming/Software Architecture] - Perfecting OO's Small Classes and Short Methods. 완벽한 객체지향의 작은 클래스와 짧은 메소드, Book:ThoughtWorks Anthology, Java,cpp,자바,oop,좋은코드,객체지향프로그래밍 - (#9, Tell, Don't Ask)

2018/12/26 - [Programming/Software Architecture] - Perfecting OO's Small Classes and Short Methods. 완벽한 객체지향의 작은 클래스와 짧은 메소드, Book:ThoughtWorks Anthology, Java,cpp,자바,oop,좋은코드,객체지향프로그래밍 (1)

 

2018/12/26 - [Programming/Java] - JavaFx, how to show actual size image bigger than pane using scroll, 실제 크기 이미지를 스크롤바 사용하여 보여주는 방법, Java/cpp/kotlin/gui

 

2018/12/21 - [Programming/Design Pattern ] - What is, How to express Classdiagram relationships, 클래스다이어그램 관계선 종류, 그리기 / java,cpp,c++,designpattern,디자인패턴

 

 

2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)

2018/12/26 - [Life/Health care] - Selenium 셀레늄 usage/side effects/dosage 효능/부작용/성인,소아 용법

2018/12/27 - [Life/Health care] - Milk-Thistle 밀크시슬 usage/side effects/dosage/fatigue/supplement,효능/부작용/성인,소아 용법/건강/피로회복/영양제

2019/01/02 - [Life/Health care] - Taurine 타우린 usage/side effects/dosage/fatigue/supplement,효능/부작용/성인,소아 용법/건강/피로회복/영양제

 

 

2019/01/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #60 sudoku. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #59 spiralNumbers. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/08 - [분류 전체보기] - Aracade Intro #58 messageFromBinaryCode. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive