구구구구우
1k
2017-09-25 11:09:10
4
3896

이클립스에서 JAVA 9 빌드


저번에 이클립스에서 JAVA 9 빌드를 지원 안하다고 적었었는데 보니까 예전 Oxygen버전의 이클립스는 java9 Support 플러그인이 지원 안돼고, 가장 최근 Oxygen버전은 java9 Support 플러그인이 돼네요, 저는  Oxygen 처음 나왔을때 설치 했었기 때문에 새로 다운받아서 해보는 중입니다.(버그가 있는듯 - 플러그인을 처음에 설치 하면 안돼고 다시 재설치(Update) 하면 돼더라구요)

근데 처음부터 재밌네요 프로젝트 생성해서 빌드패스에 등록되는 기본 라이브러리 구성부터가 재밌어요, 기존의 rt.jar 및 기본적으로 로드되던 jar들이 jrt-fs로 통합이 되었고 기본 라이브러리가 이미 모듈화가 되어있네요. 특히 모듈화 되어있는게 신기합니다. (모듈이 엄청 많네요. 어떠한 기준으로 나뉜건지.)외부 라이브러리 참조 방법이 ClassPath와 ModulePath로 된것도 재미있고, 어떠한 클래스에 접근하기 위해서 패키지 + 클래스 명을 적으면 되었던 것이 모듈명 아래에 있는 클래스의 경우 모듈을  requires 해야 하는게 듣던것보다 직접 보니 재밌네요.

예를들면 자바의 기본라이브러인 SaxParser의 경우 java.xml 모듈 아래에 있는데 SaxParser를 사용하기 위해서는 java.xml를 requires해야 컴파일 에러가 안납니다. java.base 모듈에 경우 명시하지 않아도 모든 곳에서 접근이 가능해 보이는데, 이러한 접근권한 이라던가, 기존의 Cp 와 Mp가 어떻게 조화를 이루어 작동하는지(접근 권한과 컴파일 에러)에 대해 이것저것 테스트 해봐야겠네요. 

이것 말고도 궁금한게 참 많은데 나중에 누군가 자료를 만들어 주겠죠?, 책이 나왔으면 좋겠네요

0
  • 댓글 4

  • 앙앙이
    4k
    2017-09-25 14:59:59

    SaxParser 이야기는 슬프네요

    클래스 패스만 잡으면되었지  몰  또 하라는건지

    진보가 아닌 후퇴같아 씁쓸합니다

  • 구구구구우
    1k
    2017-09-25 15:11:22

    좀 해보니까 module 로 컴파일을 하는 경우만 그렇습니다 module로 컴파일 하지 않으면 기존처럼 사용할수 있어요(module 로 컴파일을 한다는건 module-info.java를 생성하고 컴파일 하는것을 말합니다.)

    일단은 Module Java란 단순히 패키지를 public, private으로 접근 제한 할수 있다라는 정도로만 생각하세요

    그러니까 모듈 자바는 기존의 클래스 단위의 접근 제한에서 패키지 단위로 접근 제한을 할수 있는 기능이 추가 되었다고 생각하면 된다는 거죠, 기존에 방식은 유지하고 새로운 방식이 추가 되어서 크게 걱정안하셔도 되고 모듈 자바가 후퇴는 전혀 아니고,  기존의 OSGI라는 기술에 영향을 받아 자바 표준이 된건데 굉장히 자바 개발자들 사이에서 기대받는 기술중에 하나에요, 

  • 구구구구우
    1k
    2017-09-25 15:14:07

    그리 어렵지 않으니 한번 찾아보시고 시도해보세요 그렇게 어려운 개념도 아니고, 패키지에 접근제한을 할수 있다는게 재밌지 않나요?


    근데 모듈 자바가 OSGI처럼 버전구분도 되는건지 모르겠네요. 혹시 아시는분 계시려나

  • 앙앙이
    4k
    2017-09-25 15:30:35

    신규 기능인 모듈 미 이용시 기존과 같군요.

    괜하게 오해했네요.


    자바 리플레션 막고 싶은데 신규 기능 모듈 이용하면 왠지 될것 같네요.

  • 로그인을 하시면 댓글을 등록할 수 있습니다.