Java 部署在Mac can';找不到com.apple.laf.AquaLookAndFeel

Java 部署在Mac can';找不到com.apple.laf.AquaLookAndFeel,java,macos,jfreechart,jboss7.x,classnotfoundexception,Java,Macos,Jfreechart,Jboss7.x,Classnotfoundexception,我们正在从较早版本的JBoss迁移到JBoss AS7,我们在应用程序的一部分中使用JFreeChart: chart = ChartFactory.createStackedBarChart( "", "", "Data", dataset, PlotOrientation.HORIZONTAL, true, false, false ); 当我们点击这条线时,我们得到下面的堆栈跟踪,表明找不到com.apple.laf.AquaLookAndFeel。鉴于com.a

我们正在从较早版本的JBoss迁移到JBoss AS7,我们在应用程序的一部分中使用JFreeChart:

chart = ChartFactory.createStackedBarChart( "", "", "Data", dataset,
            PlotOrientation.HORIZONTAL, true, false, false );
当我们点击这条线时,我们得到下面的堆栈跟踪,表明找不到com.apple.laf.AquaLookAndFeel。鉴于com.apple.laf软件包的名称,我们只能在Mac上看到这个问题。在Linux服务器上运行似乎很好。我们需要做些什么才能让Mac上的AS7识别苹果的外观和感觉类

从2012年4月26日起,我试用过的所有Mac电脑都进行了全面更新。我还没有找到一个有一些旧JVM的

堆栈跟踪:

15:38:30,125 SEVERE [javax.enterprise.resource.webcontainer.jsf.lifecycle] (http--0.0.0.0-8080-1) JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /blah/blah/blah/blahInfo.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@3dc264b1]
15:38:30,129 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mgmt].[Faces Servlet]] (http--0.0.0.0-8080-1) Servlet.service() for servlet Faces Servlet threw exception: java.lang.ClassNotFoundException: com.apple.laf.AquaLookAndFeel from [Module "deployment.blah_war-1001.0-SNAPSHOT.war:main" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    at java.lang.Class.forName0(Native Method) [classes.jar:1.6.0_31]
    at java.lang.Class.forName(Class.java:247) [classes.jar:1.6.0_31]
    at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1856) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:563) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1329) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.initialize(UIManager.java:1422) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.maybeInitialize(UIManager.java:1410) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.getDefaults(UIManager.java:645) [classes.jar:1.6.0_31]
    at javax.swing.UIManager.getColor(UIManager.java:687) [classes.jar:1.6.0_31]
    at org.jfree.chart.JFreeChart.<clinit>(JFreeChart.java:261) [jfreechart-1.0.13.jar:]
    at org.jfree.chart.ChartFactory.createStackedBarChart(ChartFactory.java:950) [jfreechart-1.0.13.jar:]
    at this.is.our.code.DisplayChart.buildChart(DisplayChart.java:73) [classes:]

这看起来更像是一种黑客行为,所以如果有更好的方法,我们想试试。

我不确定如何测试到底在哪里添加这个,但您需要添加
com.apple.laf,com.apple.laf.resources
作为依赖项。在AS 7附带的CLI GUI中,它在
JAVA_OPTS
中定义,使用
-Djboss.modules.system.pkgs=com.apple.laf,com.apple.laf.resources
。您可以将其添加到
standalone.conf
domain.conf
中,具体取决于您运行的模式


您也可以尝试将
依赖项:com.apple.laf、com.apple.laf.resources
添加到部署中的
MANIFEST.MF
。我不确定这是否有效,但可能值得一试。

不确定是否相关,但对我来说,将
fork=“true
添加到Ant文件中的
任务会有所帮助


来源:

您是否检查过war中是否存在特定的类?根据异常堆栈,它无法从部署中找到该类。blah_war。@ThinkStip,我在/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Classes/ui.jar/com/apple/lafIs Java_HOME中看到它指向了正确的路径?我建议您也在jboss社区论坛中发布。@thinksteep,JAVA_HOME is/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/HOME您试过了吗?我在standalone.conf中添加了以下内容,效果很好:
if[“`uname`````=”Darwin”];然后JBOSS_MODULES_System_PKGS=“$JBOSS_MODULES_System_PKGS,com.apple.laf,com.apple.laf.resources“很好,谢谢你让我知道。我认为把它放在那里是有意义的。它也适用于wildfly 9.0.0决赛。
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel