October 11th, 2008
Windows용 IBM JVM 구하기

IBM JVM은 Sun VM보다 진보한 기능들이 종종 눈에 보이는데
IBM Java download page에 보면 Java Standard Edition은 AIX, Linux, z/OS용만 보인다.

J9

아래쪽에 JRE가 Windows용이 보이긴 하지만 이는 BIOS 확인을 통해 IBM사에서 출시한 PC에서만 수행된다.
서민들은 IBM Development Package for Eclipse을 받으면 된다. 이름으로 보면 이클립스를 수행하기 위한 보조툴 같다.(IBM의 자존심 아닐까?)

March 29th, 2008
GTK에서 SWT/Swing bridge 사용시 유의점

swt

Sun에서 나온 Java 6나 Java 5최신 업데이트 버젼은 GtkLookAndFeel에서 최대한 네이티브 환경과 유사하게 보이기 위해 Gtk 렌더링 코드를 직접 사용한다.
그냥 Swing만 사용할 때는 만족스러운 결과를 내는데
SWT_AWT 클래스를 사용하는 경우는 'unexprected async reply'라는 메시지가 나타난다.
SWT_AWT는 SWT 3.0 이후부터 들어간 클래스인데 SWT 컴포넌트에 AWT/Swing 컴포넌트를 넣거나 그 반대를 가능케 하는 유틸리티 클래스이다.

위의 오류는 X call이 여러 thread에 동시에 발생할때 나타난다.

SWT_AWT를 사용하면 SWT event thread와 AWT event thread가 동시에 수행되기 때문이다.

동시에 수행되지 않도록 다음과 같은 코드를 처음에 실행하면 얼추 된다.

JAVA:
  1.     public void paintDirtyRegions() {
  2.         Platform.lock.lock();
  3.         super.paintDirtyRegions();
  4.         Platform.lock.unlock();
  5.     }
  6. };
  7. RepaintManager.setCurrentManager(rm);

'이런팁은 사내 기밀 아닌가요?' 라고 물으신다면
'이정도는 삽질에 끼지도 못해요' 라고 답해 드리겠습니다.