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
사람은이 문제를 해결하는 방법을 알고 있나요
?
AIX, WAS 7.5, IBM JVM x64에서 작업했습니다. 감사. – dunpeal69