play1.2 버전을 jvm7 위에서 사용하고 있다가 jvm 8에서 사용하려다가 실패했다. 단순히 -noverify 만 넣어서 해결되는 문제는 아닌 듯 하다. 컴파일이 되지만, 이상하게 작동되니. 쓰면 안된다.
관련해서 패치등이 있지만, 현재 play 1의 jvm 8 지원은 http://play.lighthouseapp.com/projects/57987/tickets/1800-support-java-8 에서 나와 있는데, 2014년 5월 14일 기준으로 State changed from “resolved” to “inprogress” 로 변경되었다.
즉 jvm 8(java8)에서 동작이 되지 않는다.
(추후 jvm 8이 정식으로 지원이 된다면, 올려보고 apache http 또는 nginx 로그가 정상적으로 응답하는지 꼭 체크해야 한다. 정상 요청에 500에러를 발생시킨다면 아직 jvm8을 적용햘 때가 아니다.)
그렇다면 play 2 (scala) 는 jvm 8을 사용할 수 있을까?
이 부분은 현재 scala 의 버전과 밀접한 관계가 있다. 나는 play2 스칼라 개발 버전이 있는데. scala 2.11.2, play 2.3을 사용중인데. jvm 8로 실행했더니 이상하게 동작했다.
확인해보니. 아래 링크를 찾을 수 있었다. scala 2.11에서는 간단한 interop만 될 뿐이고 실제 잘 동작되고 성능까지 보장하는 것은 2.12에서 가능할 것이다. 그것은 2016년 초(정식 릴리즈)에야 가능할 예정이라고 한다.
http://www.infoq.com/articles/Scala-2-12-Only-Java8
http://scala-lang.org/news/2.12-roadmap
- It’s important to keep up with the platform, even though Java 8’s MethodHandle-based support for closures may not immediately yield significant performance benefits (definitely reduces bytecode size, and thus likely compilation times, though). For platforms that don’t support Java 8 bytecode yet, two projects exist that rewrite Java 8 invokedynamic bytecode to Java 6 (retrolambda or Forax’s JSR292 backport). I’m not aware of the equivalent for default methods, but it’s feasible.
'java core' 카테고리의 다른 글
Java의 List의 subList()와 Set의 subSet() 비교 (0) | 2015.03.14 |
---|---|
java 8u 40에서 ask 포함 설치 (0) | 2015.03.09 |
JAVA 9 기능 확정 (0) | 2014.12.04 |
ISO 8601 time zone을 지원하는 SimpleDateFormat - Java 7 이상 (0) | 2014.12.04 |
[java-linux] thread의 nid 값(16진수)를 얻어 10진수의 nid의 값으로 변환 (0) | 2014.12.02 |