2013-10-07 4 views
0

Мы обновили IBM Java на нашей машине AIX от 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)

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:

java Rtf 

Но если запустить класс РТФ с «-Dcom.sun.management.jmxremote» аргумент JVM, то будет исключением «Исключение в потоке„главный“java.lang.UnsatisfiedLinkError: FontManager (Не найдено в ком .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

Смежные вопросы