FC6下安装groovy遇到的问题小节

    在FC6下安装groovy-1.0-jsr-06的时候,发现groovyConsole启动的时候报错。错误堆栈如下:
    
java 异常
 
  1. Caught: java.lang.NullPointerException  
  2.         at groovy.ui.Console.run(Console.groovy:93)  
  3.         at groovy.ui.Console.main(Console.groovy:76)  
  4. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException  
  5.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initSystemColorDefaults(GTKLookAndFeel.java:1258)  
  6.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1500)  
  7.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.access$000(GTKLookAndFeel.java:37)  
  8.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL$1.run(GTKLookAndFeel.java:1440)  
  9.         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)  
  10.         at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)  
  11.         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)  
  12.         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)  
  13.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)  
  14.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)  
  15.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)  
  16.         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)  
  17. Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException  
  18.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.initSystemColorDefaults(GTKLookAndFeel.java:1258)  
  19.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.loadStyles(GTKLookAndFeel.java:1500)  
  20.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel.access$000(GTKLookAndFeel.java:37)  
  21.         at com.sun.java.swing.plaf.gtk.GTKLookAndFeel$WeakPCL$1.run(GTKLookAndFeel.java:1440)  
  22.         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)  
  23.         at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)  
  24.         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)  
  25.         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)  
  26.         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)  
  27.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)  
  28.         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)  
  29.         at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)  
这个错在网上搜了一下,在sun的官方上发现这是一个在jdk1.6中是个已知的bug,并且还fixed!
既然都这样了,总不能让我不能用groovyConsole把。那就自己动手改改源码吧!
1.将groovy-1.0-jsr-06.jar中的groovy/ui/Console.groovy给解出来,放在groovy的bin下。
2.vim Console.groovy,将
groovy 代码
  1. UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())  
替换成:
   
groovy 代码
  1. UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName())  
3.修改groovyConsole,将以前的注释掉,加入
    ./groovy Console.groovy &


在启动groovyConsole,终于可以启动了:

   

你可能感兴趣的:(java,UI,swing,sun,groovy)