Java와 최신 버전의 툴킷을 결합하면 여러 GTK 버전 간의 충돌로 인한 애플리케이션 오류를 방지할 수 있습니다.
현재 오라클은 GTK 3 GUI 툴킷을 Linux 시스템 기반 Java 9에 통합할 계획입니다. 이렇게 하면 현재 Java가 최신 버전의 툴킷과 결합되어 여러 GTK 버전 간의 충돌로 인해 애플리케이션이 실패하는 것을 방지할 수 있습니다.
openjdk.net 웹사이트에 게시된 Java 개선 제안에 따르면 이 계획의 목표는 기본적으로 GTK(GIMP Toolkit) 2를 지원하고 시스템 속성에 지정된 경우 GTK 3을 사용하는 것입니다. JavaFX, Swing 또는 AWT(Advanced Container Toolkit)를 기반으로 하는 다양한 Java 그래픽 애플리케이션이 권장 계획에 포함되며, 기존 애플리케이션도 위의 GTK 2 또는 3을 수정하지 않고도 Linux에서 실행할 수 있습니다.
이 제안은 Oracle Java Platform Division의 수석 설계자인 Mark Reinhold가 openjfx-dev 메일링 리스트 회원에게 보냈습니다. Java 9은 2017년 3월에 공식적으로 출시될 예정입니다.
"현재 AWT/Swing, JavaFX, SWT 등 GTK를 사용하는 Java 소프트웨어 패키지가 많이 있습니다. SWT는 GTK 3으로 마이그레이션되었지만 여전히 강제로 사용할 수 있는 시스템 속성이 포함되어 있습니다. 초기 버전을 사용합니다”라고 제안서에는 명시되어 있습니다. "소프트웨어 패키지 내에서 서로 다른 GTK 버전을 혼합하는 이러한 관행은 애플리케이션 오류를 일으킬 수 있습니다."
이 문제는 특히 Eclipse 개발 플랫폼을 사용하는 다양한 애플리케이션에 영향을 미칩니다. 또한 제안서에는 GTK 2와 3이 현재 대부분의 Linux 배포판에서 기본적으로 사용 가능하지만 아직 이를 포함하지 않은 일부 배포 계획이 있다고 명시되어 있습니다.
기능 및 API로 존재하며 GNU 프로젝트를 통해 무료 소프트웨어로 출시되는 크로스 플랫폼 툴킷인 GTK+도 영향을 받습니다. Apache OpenOffice 사무용 소프트웨어 제품군부터 Inkscape 벡터 그래픽 편집기, PyShare 이미지 업로드 도구에 이르기까지 다양한 일반 프로젝트에 포함되어 있습니다.
이 Java 제안에 따르면 GTK 2와 3을 대체하는 대안은 Java 그래픽을 조정하여 GTK 3만 지원하도록 하는 것입니다. 그러면 이식 및 테스트의 필요성이 크게 줄어듭니다. 그러나 이 솔루션은 테스트를 통해 발견할 수 없는 많은 버그를 가져올 수 있습니다. 즉, AWT의 모양과 사용 경험을 확인하는 데 추가 노력이 필요하고 JavaFX/Swing 중 하나 또는 둘 다를 포팅해야 한다는 의미입니다. 이러한 유형의 마이그레이션을 구현하려면 AWT와 Swing 간에 많은 조정이 필요한 경우가 많습니다.
그러나 한때 Sun Microssytems에서 근무했던 전직 Java 관리자는 이것이 Java에 가져온 개선 효과에 의문을 제기했습니다. Sun Microsystems의 Java EE 팀의 전 멤버이자 현재 Couchbase의 개발자 전도 담당 부사장인 Arun은 "Linux에는 Java 기반 데스크톱 애플리케이션이 많지 않기 때문에 시장이 얼마나 큰지 잘 모르겠습니다."라고 말했습니다. 강조했다.
위 내용은 관련 내용을 포함하여 openjdknet 웹사이트에서 발표한 Java 개선 제안을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.