2013-10-07 20 views
0

AIX 시스템에서 IBM Java를 Java 1.6 SR 9에서 Java 1.6 SR14로 업그레이드했습니다.IBM JVM 1.6 SR14 : java.lang.UnsatisfiedLinkError : fontmanager (com.ibm.oti.vm.bootstrap.library.path에는 없음)

import java.io.StringReader; 

import javax.swing.text.DefaultStyledDocument; 
import javax.swing.text.Document; 
import javax.swing.text.rtf.RTFEditorKit; 

public class Rtf { 

     public Rtf() { 
     } 

     static public String convert(String rtf) throws Exception { 
       DefaultStyledDocument styledDoc = new DefaultStyledDocument(); 
       RTFEditorKit rtfKit = new RTFEditorKit(); 
       StringReader reader = null; 
       reader = new StringReader(rtf); 
       rtfKit.read(reader, styledDoc, 0); 
       Document doc = styledDoc.getDefaultRootElement().getDocument(); 
       String txt = doc.getText(0, doc.getLength()); 
       return txt; 
     } 

     public static void main(String[] args) throws Exception { 
       System.getProperties().store(System.out, "Current System props"); 

       System.out.println("fontmanger LIB: "+ System.mapLibraryName("fontmanager")); 

       String rtf="{\\rtf1\\deff0{\\fonttbl{\\f0 Times New Roman;}{\\f1 Courier New;}}{\\colortbl\\red0\\green0\\blue0 ;\\red0\\green0\\blue255 ;}{\\*\\listoverridetable}{\\stylesheet {\\ql\\f1\\fs2 
0\\cf0 Normal;}{\\*\\cs1\\f1\\fs20\\cf0 Default Paragraph Font;}{\\*\\cs2\\sbasedon1\\f1\\fs20\\cf0 Line Number;}{\\*\\cs3\\ul\\f1\\fs20\\cf1 Hyperlink;}}\\sectd\\pard\\plain\\ql{\\f1\\fs20\\cf0 draw 2 extra 
6ml lav. label with chart labels\"}\\f1\\fs20\\par\\pard\\plain\\ql{\\f1\\fs20\\cf0 ?When to Transfuse: When Avl}\\f1\\fs20\\par}"; 
       String txt = Rtf.convert(rtf); 
     } 
} 

없이 어떤 JVM 인수없이 RTF 형식의 클래스를 실행하는 경우 예외가 있습니다 : 코드에 따라

Exception in thread "main" java.lang.UnsatisfiedLinkError: fontmanager (Not found in com.ibm.oti.vm.bootstrap.library.path) 
     at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1030) 
     at java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:994) 
     at java.lang.System.loadLibrary(System.java:507) 
     at sun.font.FontManager$1.run(FontManager.java:240) 
     at java.security.AccessController.doPrivileged(AccessController.java:273) 
     at sun.font.FontManager.<clinit>(FontManager.java:235) 
     at java.lang.J9VMInternals.initializeImpl(Native Method) 
     at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
     at sun.swing.SwingUtilities2.isComplexLayout(SwingUtilities2.java:203) 
     at javax.swing.text.AbstractDocument.handleInsertString(AbstractDocument.java:736) 
     at javax.swing.text.AbstractDocument.insertString(AbstractDocument.java:704) 
     at javax.swing.text.rtf.RTFReader$DocumentDestination.deliverText(RTFReader.java:1610) 
     at javax.swing.text.rtf.RTFReader$TextHandlingDestination.handleText(RTFReader.java:1546) 
     at javax.swing.text.rtf.RTFReader.handleText(RTFReader.java:186) 
     at javax.swing.text.rtf.RTFParser.write(RTFParser.java:163) 
     at javax.swing.text.rtf.AbstractFilter.readFromReader(AbstractFilter.java:116) 
     at javax.swing.text.rtf.RTFEditorKit.read(RTFEditorKit.java:122) 
     at Rtf.convert(Rtf.java:17) 
     at Rtf.main(Rtf.java:29) 

이 문제를 재현 할 수 있습니다 :

지금 우리는 우리의 응용 프로그램을 시작할 때 오류를 다음 한
java Rtf 

그러나 로 RTF 형식의 클래스를 실행하는 경우 "-Dcom.sun.management.jmxremote" JVM 인수가 다음 예외 있을 것 "스레드에서 예외"기본 "에서 java.lang.UnsatisfiedLinkError : COM에서 찾을 수 없습니다 fontmanager와 (.ibm.oti.vm.bootstrap.library.path) " :

java -Djava.awt.headless=true -Dcom.sun.management.jmxremote Rtf 

사람은이 문제를 해결하는 방법을 알고 있나요

?

답변

1

해결 방법은 현재 LIBPATH에/usr/java6_64/jre/lib/ppc64/xawt 디렉토리를 추가하는 것입니다.

+0

AIX, WAS 7.5, IBM JVM x64에서 작업했습니다. 감사. – dunpeal69