'jdk'에 해당하는 글 2건

 

그 동안의 무심함에 미안함을 조금 가지며 JAVA 근황을 좀 살펴 보았다. 보아하니 발전을 많이 했다기 보다 버전만 열심히들 올렸네. 8인가 열심히 쓰고 있었는데 16이라니... 앞으로 신규 프로젝트들은 뭘루 시작해야 하나. OpenJDK 8 과 11 사이에서 어떤 것이 현명한 선택인지 모르겠다.

 

 

OpenJDK

Download and install the open-source JDK for most popular Linux distributions. Oracle's free, GPL-licensed, production-ready OpenJDK JDK 16 binaries are at jdk.java.net/16; Oracle's commercially-licensed JDK 16 binaries for Linux, macOS, and Windows, bas

openjdk.java.net

 

AdoptOpenJDK

AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX.

adoptopenjdk.net

 

Java 버전 별 변경점들을 정리해 봤다.


Java SE 17 LTS (2021.09)

  • Java 8, 11 을 잇는 세번째 LTS 버전(3년마다 배포)
  • 애플릿 완전 제거

 

Java SE 16 (2021.03)

  • OpenJDK 버전관리가 Mercurial 에서 Git 으로 변경.
  • jpackage 명령어로 자바 프로그램 손쉽게 배포(pkg, deb, msi 등)
  • 패턴 매칭 정식 지원
  • Record 형식 정식 지원

 

Java SE 15 (2020.09)

  • EdDSA 암호화 알고리즘 추가
  • 다중 텍스트 블록 (""")

 

Java SE 14 (2020.03)

  • instanceof 패턴 매칭
  • record (data object) 선언 기능 추가

 

Java SE 13 (2019.06)

  • switch 문에 yield 예약어 추가

 

Java SE 12 (2019.03)

  • Switch 문의 확장 : case MONDAY, FRIDAY, SUNDAY -> System.out.println(6); 

 

Java SE 11 LTS (2018.09)

  • 일반 지원은 2023년 9월, 연장 지원은 2026년 9월에 종료될 예정
  • Oracle JDK 와 Open JDK 통합 (Oracle JDK는 구독형 유료 모델로 전환)
  • 이클립스 재단으로 넘어간 Java EE가 JDK에서 삭제되고, JavaFX도 JDK에서 분리되어 별도의 모듈로 제공. 
  • 람다 파라미터에 대한 지역변수 문법 변경: (var x, var y) -> x.process(y) => (x, y) -> x.process(y)
  • HTTP 클라이언트 표준화 기능 추가 (jdk.incubator.http 패키지가 표준화되어 java.net.http 패키지로 추가)
  • 엡실론(Epsilon) 가지비 컬렉터 : 오버헤드의 최저지연과 할당 제한이 가능한 완전한 수동 가비지 컬렉터 적용

 

Java SE 10 (2018.03)

  • var 키워드를 이용한 지역변수 선언 및 타입추론 가능
  • 병렬 처리 가비지 컬렉션 도입으로 인한 성능 향상
  • JVM 힙 영역을 시스템 메모리가 아닌 다른 종류의 메모리에도 할당 가능
  • 루트 CA 목록 추가
  • JDK의 Repository가 하나로 통합
  • Deprecated된 API는 Java SE 10에서 모두 삭제

 

Java SE 9 (2017.09)

  • Jigsaw 기반 런타임 모듈화(기존 jar 방식 개선)
  • JAVA 를 인터프리터 언어 쉘처럼 사용할 수 있는 JShell 추가
  • immutable collection / HTTP/2 / private 인터페이스 메소드 / HTML5 Javadoc / 프로퍼티 파일에 UTF-8 지원
  • 1.x 버전에서 9.0 으로 판올림이 일어나며, 6개월마다 새로운 버전 업데이트

 

Java SE 8 (2014.03)

  • Oracle JDK vs Open JDK (오라클 인수 후 첫번째 버전)
  • Lambda 표현식 및 함수형 프로그래밍
  • 날짜 및 시간 API(java.time 패키지)
  • Stream API 추가
  • JavaScript 엔진 Rhino -> Nashorn
  • 32비트를 지원하는 마지막 공식 Java 버전

 

Java SE 7 (2011.07)

  • Switch 문에서 문자열 사용 가능 : case "MON"
  • generics 타입 추론(생략 가능) : Map<String, Object> map = new HashMap<>();
  • try-with-resources 자동 리소스 해제(close) : try (SomeResource resource = getResource()) { ...
  • Diamond Operator <> 지원
  • 멀티프로세서 처리 : Fork/Join Framework
  • ECC 암호화 내장
  • 이진수 표현 (2진수는 0b, 8진수는 0, 16진수는 0x로 시작)

 

Java SE 6 (2006.12)

  • J2SE 에서 Java SE 로 표기가 바뀜.
  • JDBC 4.0, Java Compiler API, Pluggable Annotation 등이 추가
  • Rhino JavaScript 엔진이 기본으로 탑재

 

Java SE 5 (2004.09)

  • generics, annotation, enum, foreach, ...

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

SQL Development for Mac

Daily/Prog 2021. 6. 29. 00:27

 

Mac 에서 SQL Development 를 설치하는 방법은 간단하다. Oracle 사이트에서 SQL Development for Mac with JDK 8 을 다운받아 설치하면 끝이다. 하지만 나는 jdk1.8.0_65 가 깔려있었으므로 JDK 를 제외한 파일을 다운받았다. 다운받은 SQLDeveloper.app 파일을 실행했는데 jdk 버전이 낮다며 상위 버전을 요구했다. 최신버전인 jdk1.8.0_291 을 설치했다. 다시 SQLDeveloper.app 파일을 실행했는데 실행 즉시 셧다운 되는 현상이 나타났다. 아오...

java 버전도 jdk1.8.0_291 로 바뀐 것을 확인했는데, 뭔가 꼬인듯 했다. 장시간의 검색 끝에 JavaAppletPlugin 이란 것이 환경변수 설정을 방해한다는 것을 알게 됐고, 뿌리를 뽑아버렸다.

$ sudo rm -rf /Library/Internet Plug-Ins/JavaAppletPlugin.plugin

안타깝게도 빡쳐있던 나는 그 안에 내용물을 확인하지 않았지만 아마도 JRE 구버전이 설치를 방해하고 있었던 것이 아닌가 하는 어설픈 추측을 해본다. 참고로 저 명령어는 Mac 에서 JRE 나 JDK 삭제시 가장먼저 날리는 명령어이다.


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,