Category Archives: 소프트웨어

아리따체로 삽질하기

아모레퍼시픽에서 배포하는 아리따체라는 글꼴이 있다. 지금까지 리눅스에서 맑은 고딕을 써 오다가 뭔가 라이센스 위반을 적게 하는 데스크탑을 만들겠다는 거창한 의도 하에 시스템 글꼴을 아리따로 갈아엎었다. 저 사이트에 있는 아리따 글꼴 압축 파일에는 아리따M, 아리따 SB라는 두 글꼴이 있다. 아리따M은 일반형, 아리따 SB는 볼드 글꼴이다. 볼드 글꼴과 일반 글꼴의 Family를 다르게 하는 것은 그 동안의 한국어 글꼴에서 관행이었지만, 지금 이 상황에서는 통하지 않는다.

리눅스의 freetype의 경우, fake bold를 사용해서 한 Family 안에서 bold가 없는 글꼴의 가짜 bold 효과를 구현하게 해 줄수는 있다. 그런데 아리따M 글꼴에는 fake bold가 통하지 않았고, 따라서 아리따 SB를 어떻게 잘 연결시키면 되지 않을까 생각했다. 불행히도 내 머리에 떠올랐던 방법은 TTF 파일을 직접 건드리는 것이었고, 이를 위해서 이리저리 찾아다녔다.

일단 내가 생각한 것은 FontForge였다. 불행히도 FontForge는 현대적인 GUI 툴킷을 사용하지 않아서 한글 입력에 문제가 있을 것 같았는데, 내 예상이 적중했다. Family 이름을 편집하기 위해서 FontForge로 글꼴을 연 순간 한글은 보였지만, 한글을 고치기 위해서 그 어떤 방법도 통하지 않았다. 별 수 없어서 FontForge는 포기했다. 누가 FontForge에서 family 이름을 한글로 입력할 수 있는 방법을 안다면 알려주기 바란다.

결국 윈도로 부팅해서 FontCreator라는 상용 프로그램의 셰어웨어를 사용하기로 했다. 다행히도 GUI 관련 문제는 없었지만, 한글 글꼴 이름이 \ 다음 CP949로 되어 있는 16진수 시퀀스로 나타났다. 거기에 한글 이름을 강제적으로 적어 넣으니까 family 이름을 정상적으로 인식하지 못했다. 16진수 시퀀스를 건드릴 필요가 없었기 때문에, family 이름을 모두 아리따로 수정하고 weight 정보를 bold로 주었다.

이제 fake bold 없이도 정상적으로 bold 글꼴이 의도한 대로 나타난다. 휴우. 불행히도 아리따체 사용 조건에는 이 행위를 금지한다는 말이 있지만, 나는 이 과정에서 glyph 정보를 건드리지 않았고 weight 정보를 건드린 것 뿐이다. 이것은 bold 글꼴의 family를 다르게 해서 생긴 잘못으로, 애시당초 글꼴 설계시에 이를 고려했어야만 한다.뭐 어쨌든 이런 조건 때문에 수정한 ttf 파일은 배포하지 않으며, 직접 수정해서 쓰기 바란다.

태터툴즈 백업 결합 완료

시험이 끝나고 결국 해 보고 싶었던 삽질인 두 태터 백업 합치기에 도전해서 성공했다. cat을 통해서 두 개의 XML 파일을 합쳐 준 다음 XML을 가지고 놀면서 복구에 성공했다. 내 경우 두 파일의 합이 116.4MB라서 Kate에서 워드 랩을 끄고 작업했다. TT 백업의 경우 첨부 파일을 base64로 해서 한 줄에 박아버리기 때문에 워드랩을 끄는 것이 좋다. 그리고 나서 본격적인 삽길 시작.

두 번째 XML 쪽에 가면 post 태그로 둘러싸인 블로그 글들이 있는데, 이것을 첫 번째 백업의 해당하는 위치로 올리면 된다. 그 위치는 post 태그와 notice 태그의 사이이다. 여기 뒤에다가 글들을 붙여 주면 역시 해당하는 곳으로 들어간다. 그 다음 통계 부분은 일일 방문자 부분을 끌어올리고 두 블로그의 방문자의 합을 수동으로 계산해 주었다. 방명록은 두 번째 블로그 쪽에서 복사해 올 필요가 없었고 나머지 잔잔한 부분은 무시하고 서버에 올렸다.

그 결과가 지금 보고 있는 옛날 글들이다. 나중에 과거 블로그도 결합하기 위해서 soojung – ttxml 변환기나 만들어 볼까. 아 soojung 개발자도 지금 때려쳤다지.

WebKit 나이틀리 우분투에서 빌드하기

시험이 끝나서 삽질을 하다가 WebKit을 리눅스에서 빌드해 보기로 했다. 의외로 빌드 과정은 간단하다. 애플 SVN에서 땡겨 와 준 다음 리눅스용 스크립 돌리면 된다. 그런데 svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit 이 명령어를 실행시키는 순간 오늘 기준 778MB를 긁어오고 있었다. 테스트 파일이 대부분이었지만 뭔가 좀 심각하게 흠좀무서웠다. checkout이 다 끝나고 빌드 명령어를 내렸다. gperf, bison, flex, libsqliet3-dev 등 필요한 개발 패키지는 다 깔려 있었다. 빌드 자체는 간단하다. QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit 명령이 전부. 그러나 그 단순함 뒤에는 뭔가 숨겨져 있다.

우분투 페이스티의 Qt 버전은 4.2.3이다. 그런데 빌드를 하다가 웬 뚱딴지 같은 에러가 나더라.

../../../WebKitQt/Api/qwebnetworkinterface.cpp: In constructor ‘WebCore::WebCoreHttp::WebCoreHttp(QObject*, const WebCore::HostInfo&)’:
../../../WebKitQt/Api/qwebnetworkinterface.cpp:785: error: ‘ConnectionModeHttps’ is not a member of ‘QHttp’
../../../WebKitQt/Api/qwebnetworkinterface.cpp:785: error: ‘ConnectionModeHttp’ is not a member of ‘QHttp’

어라? 왜 이러지 하면서 WebKit의 버그인가 알아보려고 했는데, 이건 Qt 4.2.3의 한계였음이 드러나고 말았다. 친절한 트롤텍씨의 QHttp 클래스 문서에는 Qt 4.3에서 새로 추가된 상수라고 쓰여 있었다. 순간 좌절. 이거 하나 때문에 Qt 4.3을 컴파일하거나 Gutsy로 지금 dist-upgrade 하기에는 너무 아깝다. 결국 우분투 페이스티에서 WebKit 빌드 포기.

Gutsy를 기다리거나 Qt 4.3을 컴파일한 사람이 있으면 그 성공담이나 듣자.

Maple 10 for Linux

학교에 메이플 라이센스 키가 있어서 아주 오래 전에 받아 둔 메이플 10 리눅스용을 학교 키로 인증하고 실행시키려고 하는데, 설치 자체부터 문제가 있었다. 메이플의 인스톨러는 LD_ASSUME_KERNEL 환경 변수를 지정하지만, 이 환경 변수는 리눅스 커널 2.6 이상에서는 제대로 동작하지 않는다. 불행히도 근대적인 리눅스 배포판들은 리눅스 커널 2.6 이상을 사용하므로, 수동으로 인스톨러를 열어서 이것을 주석 처리해 주어야 한다. 그렇다고 해서 마음대로 주석 처리를 할 수 있는 것도 아닌데, 바이트 수가 달라지면 설치에 실패하므로 export를 #xport 같은 식으로 고쳐서 바이트 수를 보존해야 한다.

그리고 설치하고 나서도 문제는 여전한데, 메이플 10 콘솔 모드는 괜찮게 동작한다. 그리고 클래식 워크시트 모드도 동작한다. xmaple -cw로 실행하면 클래식 워크시트가 펼쳐지고, 이건 베릴과도 잘 붙는다. 심심해서 계산 몇 개 때려 주니 이렇게 되었다. 물론 plot 같은 것도 잘만 되었다.

사용자 삽입 이미지

그러나 일반 모드로 실행시키면 사용자의 입력을 받으려는 순간 죽어 버린다. 로그 덤프를 보면 다음과 같다.

[#M_ more.. | less.. |

An unexpected exception has been detected in native code outside the VM.
Unexpected Signal : 11 occurred at PC=0x944585C5
Function=XFreeFontSet+0x15
Library=/usr/lib/libX11.so.6

Current Java thread:
	at sun.awt.motif.X11InputMethod.disposeXIC(Native Method)
	at sun.awt.motif.X11InputMethod.disposeImpl(Unknown Source)
	- locked <0x99597f50> (a sun.awt.motif.X11InputMethod)
	at sun.awt.motif.X11InputMethod.dispose(Unknown Source)
	at sun.awt.im.InputContext.dispose(Unknown Source)
	at java.awt.Window$1DisposeAction.run(Unknown Source)
	- locked <0x993aa320> (a java.lang.Object)
	at java.awt.Window.dispose(Unknown Source)
	at java.awt.Dialog.disposeImpl(Unknown Source)
	at java.awt.Dialog.dispose(Unknown Source)
	at com.maplesoft.worksheet.components.WmiStartupDialog.hideStartupDialog(Unknown Source)
	at com.maplesoft.worksheet.components.WmiStartupDialog.access$400(Unknown Source)
	at com.maplesoft.worksheet.components.WmiStartupDialog$4.actionPerformed(Unknown Source)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.Dialog$1.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Dynamic libraries:
08048000-0804e000 r-xp 00000000 fe:01 436212130  /home/psj/maple10/jre.IBM_INTEL_LINUX/bin/java
0804e000-0804f000 rwxp 00005000 fe:01 436212130  /home/psj/maple10/jre.IBM_INTEL_LINUX/bin/java
0804f000-08733000 rwxp 0804f000 00:00 0          [heap]
93862000-938b5000 r-xp 00000000 fe:01 13152598   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libcmm.so
938b5000-938b7000 rwxp 00052000 fe:01 13152598   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libcmm.so
93abb000-93ad6000 r-xp 00000000 fe:01 13152595   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libdcpr.so
93ad6000-93ae9000 rwxp 0001a000 fe:01 13152595   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libdcpr.so
9414a000-94181000 r-xp 00000000 fe:01 13152597   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libjpeg.so
94181000-94182000 rwxp 00036000 fe:01 13152597   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libjpeg.so
94305000-9430d000 r-xp 00000000 08:01 641415     /usr/lib/libXcursor.so.1.0.2
9430d000-9430e000 rwxp 00007000 08:01 641415     /usr/lib/libXcursor.so.1.0.2
94315000-94325000 r-xp 00000000 fe:01 13152588   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libnet.so
94325000-94326000 rwxp 0000f000 fe:01 13152588   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libnet.so
94326000-943e0000 r-xp 00000000 fe:01 13152596   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libfontmanager.so
943e0000-943fa000 rwxp 000b9000 fe:01 13152596   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libfontmanager.so
943fb000-943ff000 r-xp 00000000 08:01 641391     /usr/lib/libXdmcp.so.6.0.0
943ff000-94400000 rwxp 00003000 08:01 641391     /usr/lib/libXdmcp.so.6.0.0
94400000-94417000 r-xp 00000000 08:01 641396     /usr/lib/libxcb.so.1.0.0
94417000-94418000 rwxp 00016000 08:01 641396     /usr/lib/libxcb.so.1.0.0
94418000-9442d000 r-xp 00000000 08:01 641379     /usr/lib/libICE.so.6.3.0
9442d000-9442f000 rwxp 00014000 08:01 641379     /usr/lib/libICE.so.6.3.0
94430000-94438000 r-xp 00000000 08:01 641383     /usr/lib/libSM.so.6.0.0
94438000-94439000 rwxp 00007000 08:01 641383     /usr/lib/libSM.so.6.0.0
94439000-94520000 r-xp 00000000 08:01 641403     /usr/lib/libX11.so.6.2.0
94520000-94524000 rwxp 000e7000 08:01 641403     /usr/lib/libX11.so.6.2.0
94524000-94531000 r-xp 00000000 08:01 641419     /usr/lib/libXext.so.6.4.0
94531000-94532000 rwxp 0000d000 08:01 641419     /usr/lib/libXext.so.6.4.0
94532000-9457f000 r-xp 00000000 08:01 644648     /usr/lib/libXt.so.6.0.0
9457f000-94583000 rwxp 0004c000 08:01 644648     /usr/lib/libXt.so.6.0.0
94583000-9458a000 r-xp 00000000 08:01 641324     /usr/lib/libXp.so.6.2.0
9458a000-9458b000 rwxp 00006000 08:01 641324     /usr/lib/libXp.so.6.2.0
94590000-94596000 rwxs 00000000 00:08 25985081   /SYSV00000000 (deleted)
94596000-9459a000 r-xp 00000000 08:01 641411     /usr/lib/libXfixes.so.3.1.0
9459a000-9459b000 rwxp 00003000 08:01 641411     /usr/lib/libXfixes.so.3.1.0
9459b000-945a2000 r-xp 00000000 08:01 641407     /usr/lib/libXrender.so.1.3.0
945a2000-945a3000 rwxp 00006000 08:01 641407     /usr/lib/libXrender.so.1.3.0
945a3000-945f6000 r-xp 00000000 fe:01 13152592   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libmlib_image.so
945f6000-945f7000 rwxp 00052000 fe:01 13152592   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libmlib_image.so
945f7000-948c2000 r-xp 00000000 fe:01 13152593   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libawt.so
948c2000-948d8000 rwxp 002ca000 fe:01 13152593   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libawt.so
948fd000-94939000 r-xs 00000000 fe:01 504096671  /home/psj/maple10/java/wksloader.jar
94939000-94997000 r-xs 00000000 fe:01 503402369  /home/psj/maple10/java/update.jar
94997000-949ea000 r-xs 00000000 fe:01 504096655  /home/psj/maple10/java/plot.jar
949ea000-94a71000 r-xs 00000000 fe:01 504096660  /home/psj/maple10/java/pen.jar
94a71000-94e28000 r-xs 00000000 fe:01 504096654  /home/psj/maple10/java/openviz2.jar
94e28000-95035000 r-xs 00000000 fe:01 504096665  /home/psj/maple10/java/mathxmltools.jar
95035000-9503c000 r-xs 00000000 fe:01 504096666  /home/psj/maple10/java/mathworksheet.jar
9503c000-951c6000 r-xs 00000000 fe:01 504096658  /home/psj/maple10/java/mathdoc.jar
951c6000-9548e000 r-xs 00000000 fe:01 504096657  /home/psj/maple10/java/maplewks.jar
9548e000-954ee000 r-xs 00000000 fe:01 504096667  /home/psj/maple10/java/mapletbuilder.jar
954ee000-95535000 r-xs 00000000 fe:01 504096653  /home/psj/maple10/java/mapleresource_ja.jar
95535000-95a32000 r-xs 00000000 fe:01 504096652  /home/psj/maple10/java/mapleresource.jar
95a32000-95e0e000 r-xs 00000000 fe:01 504096656  /home/psj/maple10/java/mapleclient.jar
95e0e000-95e59000 r-xs 00000000 fe:01 504096659  /home/psj/maple10/java/mail.jar
95e59000-95e5d000 r-xs 00000000 fe:01 504096663  /home/psj/maple10/java/jopenmaple.jar
95e5d000-95f47000 r-xs 00000000 fe:01 503402368  /home/psj/maple10/java/jogl-IBM_INTEL_LINUX.jar
95f47000-960c8000 r-xs 00000000 fe:01 504096661  /home/psj/maple10/java/jai_core.jar
960c8000-960fd000 r-xs 00000000 fe:01 504096662  /home/psj/maple10/java/jai_codec.jar
960fd000-9613b000 r-xs 00000000 fe:01 504096651  /home/psj/maple10/java/freehep-graphicsio.jar
9613b000-96148000 r-xs 00000000 fe:01 504096649  /home/psj/maple10/java/freehep-graphicsio-ps.jar
96148000-9615b000 r-xs 00000000 fe:01 504096650  /home/psj/maple10/java/freehep-graphicsio-pdf.jar
9615b000-96164000 r-xs 00000000 fe:01 504096648  /home/psj/maple10/java/freehep-graphics2d.jar
96164000-96208000 r-xs 00000000 fe:01 504096647  /home/psj/maple10/java/freehep-base.jar
96208000-96216000 r-xs 00000000 fe:01 504108124  /home/psj/maple10/java/activation.jar
96216000-9621e000 r-xs 00000000 fe:01 504096664  /home/psj/maple10/java/WMFWriter.jar
9621e000-9622f000 r-xs 00000000 fe:01 504742645  /home/psj/maple10/java/MapleActivation.jar
9622f000-9631d000 r-xs 00000000 fe:01 504096670  /home/psj/maple10/java/xalan.jar
9631d000-9633c000 r-xs 00000000 fe:01 504096669  /home/psj/maple10/java/xmlParserAPIs.jar
9633c000-96415000 r-xs 00000000 fe:01 504096668  /home/psj/maple10/java/xercesImpl.jar
96415000-964d0000 r-xs 00000000 fe:01 136286820  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/ext/localedata.jar
964d0000-964dd000 r-xs 00000000 fe:01 136286819  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/ext/ldapsec.jar
964dd000-964f9000 r-xs 00000000 fe:01 136286817  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/ext/sunjce_provider.jar
966fd000-9679a000 r-xp 00000000 08:01 641232     /usr/lib/locale/ko_KR.utf8/LC_CTYPE
b3ae0000-b3ae1000 r-xp 00000000 08:01 642645     /usr/lib/libxcb-xlib.so.0.0.0
b3ae1000-b3ae2000 rwxp 00000000 08:01 642645     /usr/lib/libxcb-xlib.so.0.0.0
b3ae2000-b3ae6000 r-xp 00000000 08:01 644677     /usr/lib/libXtst.so.6.1.0
b3ae6000-b3ae7000 rwxp 00003000 08:01 644677     /usr/lib/libXtst.so.6.1.0
b3ae7000-b3aee000 r-xs 00000000 08:01 656932     /usr/lib/gconv/gconv-modules.cache
b5b96000-b60de000 r-xs 00000000 fe:01 470842532  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/charsets.jar
b60de000-b60ef000 r-xs 00000000 fe:01 470631272  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/jce.jar
b60ef000-b61c7000 r-xs 00000000 fe:01 470842081  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/jsse.jar
b61c7000-b61dd000 r-xs 00000000 fe:01 470631271  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/sunrsasign.jar
b6227000-b7904000 r-xs 00000000 fe:01 470842534  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/rt.jar
b7904000-b7918000 r-xp 00000000 fe:01 13152585   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libzip.so
b7918000-b791b000 rwxp 00013000 fe:01 13152585   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libzip.so
b791b000-b793b000 r-xp 00000000 fe:01 13152583   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libjava.so
b793b000-b793d000 rwxp 0001f000 fe:01 13152583   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libjava.so
b793d000-b7946000 r-xp 00000000 08:01 594704     /lib/tls/i686/cmov/libnss_files-2.5.so
b7946000-b7948000 rwxp 00008000 08:01 594704     /lib/tls/i686/cmov/libnss_files-2.5.so
b7948000-b7950000 r-xp 00000000 08:01 594706     /lib/tls/i686/cmov/libnss_nis-2.5.so
b7950000-b7952000 rwxp 00007000 08:01 594706     /lib/tls/i686/cmov/libnss_nis-2.5.so
b7952000-b7954000 r-xp 00000000 08:01 641387     /usr/lib/libXau.so.6.0.0
b7954000-b7955000 rwxp 00001000 08:01 641387     /usr/lib/libXau.so.6.0.0
b7955000-b7958000 r-xs 00000000 fe:01 136286818  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/ext/dnsns.jar
b7958000-b7968000 r-xp 00000000 fe:01 13152582   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libverify.so
b7968000-b796a000 rwxp 0000f000 fe:01 13152582   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/libverify.so
b796a000-b798f000 r-xp 00000000 08:01 594699     /lib/tls/i686/cmov/libm-2.5.so
b798f000-b7991000 rwxp 00024000 08:01 594699     /lib/tls/i686/cmov/libm-2.5.so
b7991000-b79a4000 r-xp 00000000 08:01 594701     /lib/tls/i686/cmov/libnsl-2.5.so
b79a4000-b79a6000 rwxp 00012000 08:01 594701     /lib/tls/i686/cmov/libnsl-2.5.so
b79a8000-b7da2000 r-xp 00000000 fe:01 104564977  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/client/libjvm.so
b7da2000-b7dbe000 rwxp 003f9000 fe:01 104564977  /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/client/libjvm.so
b7dd1000-b7f0c000 r-xp 00000000 08:01 591518     /lib/tls/i686/cmov/libc-2.5.so
b7f0c000-b7f0d000 r-xp 0013b000 08:01 591518     /lib/tls/i686/cmov/libc-2.5.so
b7f0d000-b7f0f000 rwxp 0013c000 08:01 591518     /lib/tls/i686/cmov/libc-2.5.so
b7f12000-b7f14000 r-xp 00000000 08:01 594698     /lib/tls/i686/cmov/libdl-2.5.so
b7f14000-b7f16000 rwxp 00001000 08:01 594698     /lib/tls/i686/cmov/libdl-2.5.so
b7f17000-b7f2a000 r-xp 00000000 08:01 594709     /lib/tls/i686/cmov/libpthread-2.5.so
b7f2a000-b7f2c000 rwxp 00013000 08:01 594709     /lib/tls/i686/cmov/libpthread-2.5.so
b7f2e000-b7f30000 r-xs 00000000 fe:01 504096646  /home/psj/maple10/java/externalcall.jar
b7f30000-b7f34000 rwxs 00000000 08:01 164198     /tmp/hsperfdata_psj/7814
b7f34000-b7f3b000 r-xp 00000000 08:01 594702     /lib/tls/i686/cmov/libnss_compat-2.5.so
b7f3b000-b7f3d000 rwxp 00006000 08:01 594702     /lib/tls/i686/cmov/libnss_compat-2.5.so
b7f3d000-b7f45000 r-xp 00000000 fe:01 33575214   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/native_threads/libhpi.so
b7f45000-b7f46000 rwxp 00007000 fe:01 33575214   /home/psj/maple10/jre.IBM_INTEL_LINUX/lib/i386/native_threads/libhpi.so
b7f48000-b7f61000 r-xp 00000000 08:01 2300614    /lib/ld-2.5.so
b7f61000-b7f63000 rwxp 00019000 08:01 2300614    /lib/ld-2.5.so
bfad5000-bfaeb000 rwxp bfad5000 00:00 0          [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0          [vdso]

Heap at VM Abort:
Heap
 def new generation   total 1472K, used 190K [0x96ae0000, 0x96c70000, 0x989a0000)
  eden space 1344K,  11% used [0x96ae0000, 0x96b08518, 0x96c30000)
  from space 128K,  22% used [0x96c30000, 0x96c37540, 0x96c50000)
  to   space 128K,   0% used [0x96c50000, 0x96c50000, 0x96c70000)
 tenured generation   total 18756K, used 13069K [0x989a0000, 0x99bf1000, 0xafae0000)
   the space 18756K,  69% used [0x989a0000, 0x99663798, 0x99663800, 0x99bf1000)
 compacting perm gen  total 18432K, used 18396K [0xafae0000, 0xb0ce0000, 0xb3ae0000)
   the space 18432K,  99% used [0xafae0000, 0xb0cd7248, 0xb0cd7400, 0xb0ce0000)

Local Time = Fri Mar 23 08:20:52 2007
Elapsed Time = 30
#
# The exception above was detected in native code outside the VM
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_02-b03 mixed mode)
#

_M#]

이것은 너무 오래 된 문제다. 내 리눅스에는 이미 JRE 6.0이 깔려 있는데 이것을 이용하지 못한다는 것이 안타깝다. 구글신에게 물어봐도 별로 도움을 주는 방법이 없었다. 아. 클래식 워크시트로만 이용해야 하는가.