WSL2 무작정 JAVA 와 eclipse 설치하고 구동해보기 | dasfef

2023.04.12

개인 기록용 입니다 :) 오타, 수정 등 피드백 환영


자바를 우분투로 복습하려 했으나 가상환경이나 가상머신이나 처음 세팅이 너무나 어렵단걸 느꼈고 다신 까먹지 않기 위해 기록한다
​WSL 세팅이 안되었다면 이전 링크 참조 : WSL2 Ubuntu 설치

1. JAVA 설치
만일 자바와 eclipse를 기존 윈도우에서 깔았다면 eclipse 파일만 리눅스 전용으로 다시 받아오면 된다 참조 : ECLIPSE 다운로드

위 링크에서 리눅스 전용 64비트 다운로드 하면 tar.gz 파일로 다운로드가 될 것이다 Ubuntu 실행 후 자바 설치 아래 명령어를 따라 입력한다

# 1. apt 업데이트
$ sudo apt update

# 2. java 설치
$ sudo apt install openjdk-8-jdk

# 3. java 설치 확인
$ java --version
$ javac --version


이후 자바 환경설정을 위해 아래 명령어를 따라 입력한다

# 1. javac 위치 확인
$ which javac
# /usr/bin/javac

# 2. javac 위치 확인
$ readlink -f /usr/bin/javac
# /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

# 3. environment에 등록
$ sudo vi /etc/enviroment

# >>>> 자바 경로 입력 후 저장
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
# >>>>

# 4. 변경사항 저장 후 확인
$ source /etc/environment
$ echo $JAVA_HOME

참고 : great-developer
본인은 8버전으로 실행하고 있기 때문에 위 명령어와 동일하게 입력하였고 별도의 버전 설치가 필요하다면 java 뒤의 버전 숫자만 바꿔주자
2. eclipse 설치
다운로드 받은 tar.gz 파일을 리눅스로 옮겨준다 wsl 은 윈도우와 파일을 공유시킬 수 있는데 wsl 설치가 마친 사람이라면 파일탐색기에 아래와 같은 환경을 찾을 수 있다

다운로드 받은 tar.gz 파일을 잘라내기 한 후
Linux -> Ubuntu -> home -> 생성한 username 폴더
로 들어가서 붙여넣기 해준다
Ubuntu를 실행하고 바로 나오는 위치가 해당 위치이다 처음엔 ls 로 해당 위치에 있는 파일을 찾아보아도 아무것도 뜨지 않지만 tar.gz 파일을 옮겨놓았다면 해당 파일이 ls 명령어로 확인 가능할 것이다
해당 위치에서 압축을 해제해준다

$ tar -zxvf eclipse-java-2023-03-R-linux-gtk-x86_64.tar.gz 
// -zxvf 뒤에는 파일명

그러면 eclipse 폴더가 만들어지고 폴더 안에 eclipse 관련된 파일들이 즐비해있다
이제 실행하면 끝!


3. Ubuntu GUI 설정
인줄 알았으나 한가지 간과한 점이 있다
현재 Ubuntu 에는 GUI 를 보여줄 수 있는 기능이 없어 아무리 eclipse 설치가 끝났다 해도 실행한다 한들 한번 껌벅이고 실행하는 모습은 볼 수 없다
따라서 WSL 에서 GUI 를 보여줄 수 있는 파일을 설치하고 서버 설정을 따로 해줘야 한다
​본인이 쓰고 있는 파일은 VcXsrv 이다
참고 : VcXsrv 참고 링크 해당 링크에서 다운로드 후 실행을 시킨다

default 설정


default 설정


3번째 Disable access control 부분이 해제되어 있는데
해당 부분만 체크하고 마치면 이 프로그램은 실행된 채로 숨어있다



4. 본인 컴퓨터 IP 주소 등록
VcXsrv 를 통해 GUI 를 보이기 위해선 내 컴퓨터가 쓰고 있는 IP 주소를 등록해야 한다
그런데 윈도우가 쓰고 있는 IP가 아닌 WSL 가 쓰고있는 IP를 등록해야 한다
그럼 이 IP는 어디서 알 수 있을까?

1) 윈도우 cmd 창

Ubuntu 가 실행되어 있는 상태에서 cmd 창에서 ipconfig 명령을 통해 알 수 있다


2) Ubuntu 내 파일

Ubuntu 실행 후 ls 를 해보면 아무것도 없는것 같지만 cd .. 를 통해 바깥으로 나가다보면 최상위 폴더가 존재한다
그곳에서 ls 를 해보면

이렇게 폴더들이 존재하고
etc 안의 resolv.conf 파일을 열어보면
해당 Ubuntu의 IP 주소를 알 수 있다


$ cat etc/resolv.conf
// Ubuntu 내 IP 주소 확인


이렇게 두가지 방식으로 알아볼 수 있고 이것으로 확인된 IP 의 주소에 마지막에 :0 을 붙여주는 식으로 IP 등록을 해준다
마치 환경변수 설정해주듯이 하면 되고 지금 Ubuntu 에 bash 로 실행이 되고 있으니 해당 파일을 손봐주자

$ vi ~/.bashrc
// bash 문서 파일 수정 -> i를 눌러 -- INSERT -- 모드 활성화

export DISPLAY=위에서 확인한 IP 주소:0 이렇게 하면 들어올때마다 수동으로 환경변수 설정을 해주어야 하니

$ cat etc/resolv.conf 

를 활용하여 명령어를 넣어두자

$ vi ~/.bashrc
// bash 문서 파일 수정 -> i를 눌러 -- INSERT -- 모드 활성화

export DISPLAY=$(cat etc/resolv.conf | grep nameserver | awk '{ print $2 }'):0
// 입력 후 esc -> :wq 를 입력해 저장 후 나오기

이렇게 IP 등록까지 마칠 수 있다
5.실행해보기
IP 등록과 함께 GUI 실행이 원활히 되나 확인차원에서 Ubuntu에 아래와 같이 명령어를 쳐본다 ​

$ gedit

잘 실행이 되면

이런식으로 모습이 보이고 실행이 되지 않으면 가만히 있는 상태로 멈춰 있거나 오류 발생을 알려줄 것이다
모든 준비가 마치게 되었으니 eclipse 를 실행하여 아무거나 출력까지 진행해보자

// Ubuntu -> eclipse 폴더 진입
$ cd eclipse

// eclipse 실행
$ ./eclipse

우분투에서의 실행이 잘 이루어졌고 간단한 출력도 진행할 수 있는 정상적인 eclipse 설치가 완료되었다 😂
🙌 주의 🙌 이클립스 실행 도중 아래와 같은 오류가 발생할 수 있다 WARNING : Couldn’t connect to accessibility bus ~

📌해결책

$ vi ~/.bashrc 

를 통해 다시 문서 작성에 들어가서 아래와 같이 작성해준다

NO_AT_BRIDGE=1

그리고 저장하고 나오면 오류 발생이 사라짐을 알 수 있다
이 명령어에 대해선 아래 링크에 자세히 설명되어 있다 참고 : forum.xfce.org

추측하자면 gtk 관련된 문제인것 같은데 아마 WSL 활용으로 인해 rootuser 와 local 유저가 혼동이 생겨 그걸 하나로 바로잡아 주는 명령어가 아닐까 싶다 해외에서도 이 명령어가 왜 오류를 잡아주는지에 대한 명확한 이유를 찾지 못하지만 한 유저가 테스트하며 이런식으로 추측한 글이 있어 공유해본다 😉
회고 )

  1. 가상환경이든 뭐든 처음 세팅이 매우 어렵다는걸 절실히 느낀다
  2. 나와 맞지 않는 버전이 있을 수 있어 여러 자료를 보고 단계를 확인한 후 최종적으로 마이크로소프트에서 제공하는 매뉴얼을 보니 생각보다 쉽게 느껴졌다
  3. 발생하는 오류에 있어 기존 언어들에서의 오류보다는 제공되는 정보가 극히 적은것 같은 느낌이 들었다
  4. NO_AT_BRIDGE=1 에 관련된 좀더 구체적인 정보에 대해 확인이 필요하다