우리는 beagle bone black (우분투 실행)에서 실행 가능한 runnable java jar 파일을 생성합니다.만족하지 못하는 링크 오류 runnable jar 참조하는 jssc 라이브러리
우리는 Mac과 PC (윈도우)에서는 잘 돌아가지만 우분투 시스템에서는 실행되지 않는 실행 가능한 jar 파일을 만들었습니다. 실행 중 다음 오류가 계속 발생합니다.
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.UnsatisfiedLinkError: /home/ubuntu/.jssc/linux/libjSSC-2.6_armhf.so: /home/ubuntu/.jssc/linux/libjSSC-2.6_armhf.so: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851)
at java.lang.Runtime.load0(Runtime.java:795)
at java.lang.System.load(System.java:1062)
at jssc.SerialNativeInterface.<clinit>(SerialNativeInterface.java:172)
at jssc.SerialPort.<init>(SerialPort.java:118)
at InputBoard.<init>(InputBoard.java:33)
at InputBoard.main(InputBoard.java:22)
... 5 more
모든 정보를 제공해 주시면 감사하겠습니다. 말했듯이이 유닉스 기반의 Mac에서 터미널을 통해 잘 실행되므로 우분투에서 작동해야합니다. 왜 우리가/home/ubuntu 디렉토리를 참조하는지 알 수 없습니다. 프로젝트에 대한 코드 정보가 필요하다면 알려주십시오. 관련이 있다고 생각하지 않습니다.
비글 뼈에서 다른 Java 앱을 실행 한 적이 있습니까? 앱의 일부 또는 자바 JVM이 jssc 라이브러리를로드하려고합니다. 아마도 해결 방법은 [install jssc] (http://code.google.com/p/java-simple-serial-connector/wiki/jSSC_Start_Working)이고이 오류를 지나치는지 확인하십시오 (Linux가 그들은이 우분투 버전과 호환됩니다). –
감사합니다 @ 샘, 우리는 비글 뼈에 아무런 문제가 다른 자바 응용 프로그램을 실행했습니다. Java 용 직렬 포트 라이브러리의 대부분은 Windows 용 dll과 같은 기본 플러그인을 필요로합니다. Eclipse 프로젝트의 네이티브 라이브러리에이 라이브러리를 저장하고 jar 파일을 내 보냈지 만 java.system.path에 대한 만족할만한 링크 오류가 발생했습니다. –
쉘 (명령 줄)에서 실행하는 것에 대해 이야기하는 경우 _LD_LIBRARY_PATH_ 예 :'export LD_LIBRARY_PATH =/directory_where_so_file_is'를 설정했는지 확인하십시오. 또한 자바는'java.library.path'라는 시스템 프로퍼티를 가지고 있는데,'-Djava.library.path = ...'를 사용해서 설정할 수도 있습니다. 이것 [SO 포스트]를보십시오 (http://stackoverflow.com/questions/661320/how-to-add-native-library-to-java-library-path-with-eclipse-launch-instead-of) 그것을보십시오 Eclipse 내부에서 실행중인 경우. 오류에 표시된'.so' 파일에는 특정 버전이 있으므로 파일의 버전이 올바른지 확인하십시오. HTH. –