JavaFX应用程序不是从EclipseLink Moxy开始的

时间:2017-06-02 08:43:56

标签: java javafx jaxb javafx-8 moxy

我已经将EclipseLink MOXy添加到我的JavaFX-8应用程序中,从那时起应用程序就不再启动了。错误是:无法找到或加载主类x.y.z.当我删除MOXy时,应用程序启动非常好。当然,应用程序不使用JAXB的MOXy实现。

JavaFX应用程序打包为自执行jar。它包括一个用于JavaSE的CDI的Weld实现,以及一个jax-rs的Jersey实现。我在包中包含我的JAXB类的jaxb.properties文件,它确实指定了MOXy的JAXB上下文工厂。

基本上,我不明白当MOXy打包在应用程序中时应用程序不再启动的原因。任何线索?

修改 问题可能来自用作MOXy依赖关系的jar文件,可以签名。

1 个答案:

答案 0 :(得分:0)

好的,这确实是生成的应用程序JAR文件中的签名不匹配。

我正在使用maven来构建JavaFX应用程序。在构建过程中,所有依赖项在包阶段都被解压缩,然后再次打包在包含我的应用程序的单个JAR文件中。

解压缩步骤是使用maven依赖插件完成的。我必须添加以下配置以排除所有签名文件:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>unpack-dependencies</goal>
                    </goals>
                    <configuration>
                        <excludes>META-INF/*.SF</excludes>
                        <excludes>META-INF/*.DSA</excludes>
                        <excludes>META-INF/*.RSA</excludes>
                        <excludeScope>system</excludeScope>
                        <excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
                        <outputDirectory>${project.build.directory}/classes</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

现在可行。