1

我正在部署一个尝试使用但javac最终失败的应用程序java.lang.NoClassDefFoundError: com/sun/tools/javac/Main

我应该如何使部署在 JBoss 7 或 WildFly 中的应用程序可用javactools.jar

4

1 回答 1

2

这是我为以下创建 JBoss 模块所遵循的过程javac

mkdir -p modules/com/sun/tools/javac/main
ln -s /usr/java/latest/lib/tools.jar modules/com/sun/tools/javac/main/tools.jar

使用内容创建modules/com/sun/tools/javac/main/module.xml

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.sun.tools.javac">
    <resources>
        <resource-root path="tools.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <system export="true">
            <paths>
                <path name="com/sun/tools/javac"/>
            </paths>
        </system>
    </dependencies>
</module>

注意:我使用了符号链接,因为resource-root path属性似乎不支持绝对路径。

然后添加或创建文件Dependencies: com.sun.tools.javac以声明应用程序使用此新模块:https ://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.2/html/Development_Guide/Add_an_Explicit_Module_Dependency_to_a_Deployment1.htmlMETA-INF/MANIFEST.MFjboss-deployment-structure.xml

于 2014-07-22T06:08:46.110 回答