2013-10-07 13 views
0

我們將AIX機器上的IBM Java從Java 1.6 SR 9升級到Java 1.6 SR14IBM JVM 1.6 SR14:java.lang.UnsatisfiedLinkError:fontmanager(未在com.ibm.oti.vm.bootstrap.library.path中找到)

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) 

下面的代碼允許重現此問題:

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類的任何異常:

,現在我們已經把我們的應用程序的啓動過程中出現以下錯誤
java Rtf 

但如果與運行RTF類「-Dcom.sun.management.jmxremote」 JVM參數,那麼會出現例外「在線程異常‘主要’java.lang.UnsatisfiedLinkError中:fontmanager(COM中未找到.ibm.oti.vm.bootstrap.library.path)」

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

有誰知道如何解決這個問題?

回答

1

解決方法是將目錄/ usr/java6_64/jre/lib/ppc64/xawt添加到當前的LIBPATH中。

+0

工作在AIX,WAS 7.5,IBM JVM x64上。謝謝。 – dunpeal69

相關問題