Como fazer o arquivo jar do projeto javaFX

9

Eu tenho o projeto javaFX, com o qual estou trabalhando no Eclipse IDE. Este é o projeto Maven com o uso do Spring. Meu objetivo é tornar o arquivo jar executável (aplicativo dekstop) deste projeto.

Se eu exportar meu aplicativo para o arquivo jar como qualquer outro projeto java, receberei o erro:

C:\eclipse\projjars>java -jar EqMan.jar
Exception in thread "main" java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Can't load library: C:\eclipse\bin\glass.dll
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:276)
        at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:122)
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:163)
        at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
        at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: Can't load library: C:\eclipse\bin\glass.dll
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.load0(Unknown Source)
        at java.lang.System.load(Unknown Source)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryFullPath(NativeLibLoader.java:143)
        at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:56)
        at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:31)
        at com.sun.glass.ui.Application$1.run(Application.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:73)
        at com.sun.glass.ui.Application.loadNativeLibrary(Application.java:85)
        at com.sun.glass.ui.win.WinApplication.<clinit>(WinApplication.java:33)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:20)
        at com.sun.glass.ui.win.WinPlatformFactory.createApplication(WinPlatformFactory.java:17)
        at com.sun.glass.ui.Application.Run(Application.java:108)
        at com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:266)
        ... 5 more

Se eu estou tentando fazer o arquivo jar com o javafxpackager, recebo este erro:

C:\eclipse\workspace\equification>javafxpackager -makeall -appclass ru.igs.ava.equification.EquificationFX -name "Equification" -width 800 -height 600
warning: [options] bootstrap class path not set in conjunction with -source 1.5
C:\eclipse\workspace\equification\src\main\java\ru\igs\ava\equification\EqConfigureRole.java:5: error: package org.springframework.context does not exist
import org.springframework.context.ApplicationContext;
C:\eclipse\workspace\equification\src\test\java\ru\igs\ava\equification\AppTest.java:11: error: cannot find symbol
    extends TestCase
            ^
//and the same error for every class, which is added to my project as maven dependency.

Então, como posso criar um arquivo jar sem converter meu projeto para o projeto NetBeans?

    
por Agafonova Victoria 05.07.2012 в 19:17
fonte

2 respostas

5

Veja como você está usando o Maven para suas compilações, você também pode usar o Maven para iniciar o empacotamento do JavaFX. Para fazer isso, use o plugin Maven antrun para invocar os Tarefas JavaFX ant para gerar um jar para seu aplicativo com um ativador JavaFX integrado. Aqui está um exemplo de maven pom para fazer isso.

Seus erros na execução do pacote javafx são devidos a não configurar corretamente o caminho de classe para o empacotador. Um exemplo de como definir o classpath para o pacote javafx para empacotar um aplicativo que depende de jars lib dependentes está neste script de construção .

Os erros de link não-satisfeitos são porque você não está incluindo as DLLs de lib necessárias em um diretório ../bin relativo ao local de tempo de execução do jfxrt.jar quando você executa seu aplicativo. Você também pode não estar empacotando corretamente seu aplicativo com um ativador JavaFX (executando as tarefas javafx ant recomendadas ou os comandos javafxpackager para gerar seu jar de aplicativo JavaFX).

Atualizar

Para compilações baseadas em Maven de aplicativos JavaFX, agora você pode usar um plug-in Maven JavaFX .

    
por jewelsea 05.07.2012 / 20:59
fonte
0

Partir da suspeita de que o problema subjacente é devido a uma incompatibilidade entre o jfxrt.jar e a versão do Java instalada funcionou para mim. O jfxrt.jar que o aplicativo estava usando era compatível com jdk-7u71, mas o aplicativo estava em uma máquina em que o JAVA_HOME estava configurado como 7.0.05. Então eu instalei o jdk-7u71 na máquina com problemas e atualizei o JAVA_HOME.

    
por Chris Murphy 04.12.2014 / 03:24
fonte