brunch

You can make anything
by writing

C.S.Lewis

by K의 단상 Apr 18. 2017

JAVA SWT를 Linux에서 실행 하기

java SWT를 Linux 64bit에서 실행하는 방법

지인에게 개인 프로젝트로 만든 SWT 프로그램을 리눅스에서 돌릴 수 있도록 요청을 받았다.
단순하게 SWT.jar파일만 리눅스용을 구해서 설정하면 될지 알았는데, 그렇지 못했다.

우선 SWT가 무엇인지 정리하고, 만나게 된 오류와 해결 방법을 정리한다.

SWT 란?

운영체제에서 사용자 인터페이스 기능과 효율적인 접근을 제공하도록 설계된 JAVA용 오픈 소스 위젯 툴킷입니다.


Linux에서 실행해보기

windows에서 돌아가는 SWT를 가지고 실행하면 오류가 납니다.  


Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:  no swt-win32-4430 in java.library.path no swt-win32 in java.library.path Can't load library: /home/lahuman/.swt/lib/linux/x86_64/libswt-win32-4430.so Can't load library: /home/lahuman/.swt/lib/linux/x86_64/libswt-win32.so


Linux 용 jar 파일이 몇 개가 있는데, 그중에 다음을 받으면 된다.


프로젝트 설정

Eclipse를 사용 중이면 프로젝트에서 

Properties > Java Build Path > add JARs.. 에 maven에서 받은 라이브 러리 추가한다.


Linux에서 필요한 library 및 설정  

# swt 관련 라이브러리 검색
$> aptitude search libswt-gtk
# 검색된 라이브러리를 설치 3, 4 모두 설치함
$>  sudo apt-get install libswt-gtk-3-java libswt-gtk-3-jni libswt-gtk-3-java-gcj  libswt-gtk-4-java libswt-gtk-4-jni
# 사용자 계정 밑에 링크를 추가 
$> ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
# disabled 되었다는 메시지 출력 시 아래 명령 실행
$> sudo execstack -c ~/.swt/lib/linux/x86_64/libswt-gtk-{VERSION}.so 


실행용 jar 파일 만들기

Eclipse에서 실행되는 jar를 만들기 위해서는 해당 프로젝트에서 마우스 오른쪽을 누르고, 

Export > Java > Runnable JAR file을 선택한다.


실행

다음과 같이 실행하면 된다.  

java -jar {filename.jar}


참고 자료

https://mvnrepository.com/artifact/org.eclipse.swt/org.eclipse.swt.gtk.linux.x86_64/4.3

http://stackoverflow.com/questions/10970754/cant-open-eclipse-in-ubuntu-12-04-java-lang-unsatisfiedlinkerror-could-not-l

https://www.eclipse.org/swt/

작가의 이전글 Maven-site-plugin 사용법
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari