2017-06-02 36 views
0

我已將EclipseLink MOXy添加到我的JavaFX-8應用程序中,並且此後應用程序不再啓動。錯誤是:無法找到或加載主類x.y.z.當我刪除MOXY時,那麼應用程序啓動非常好。當然,應用程序不使用JAXB的MOXy實現。JavaFX應用程序不以EclipseLink開頭Moxy

JavaFX應用程序打包爲可自行執行的jar。它包括用於JavaSE的CDI的焊接實現以及jax-rs的Jersey實現。我在包含JAXB類的包中有一個jaxb.properties文件,它確實指定了MOXy的JAXB上下文工廠。

所以基本上,我不明白當應用程序打包MOXy時,應用程序不再啓動的原因。任何線索?

編輯: 該問題可能來自用作MOXy可以簽名的依賴項的jar文件。

回答

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> 

現在它可以工作。