2013-01-10 17 views
8

Utworzyłem aplikację JavaFX i utworzyłem jej macierzysty pakiet przy użyciu Ant. Kiedy próbuję uruchomić aplikację przy użyciu Słoka z pakietu utworzonego za pomocą dwukrotnego kliknięcia, to pomyślnie uruchamia moją aplikację. Ale gdy próbuję dwukrotnie kliknąć MyApplication.exe (powiedzmy), rzucając Błąd Launchera JavaFX "Wyjątek podczas uruchamiania aplikacji".Nie można uruchomić aplikacji JavaFX z pakietem natywnym exe

Porównałem oba jre, istnieje wiele brakujących słoików, exe, dll i kilka plików właściwości, które znalazłem.

mam te ustawienia Środowisko -

JAVA_HOME -- C:\Program Files\Java\jdk1.7.0_10 
JREFX_HOME -- C:\Program Files\Oracle\JavaFX 2.2 Runtime 
Path contains an entry of C:\Program Files\Java\jdk1.7.0_10\bin 

JAVA_HOME i JREFX_HOME są wykorzystywane jako w moim build.xml podjęcia ant-javafx.jar i jfxrt.jar -

${env.JAVA_HOME}/lib/ant-javafx.jar 
${env.JREFX_HOME}/lib/jfxrt.jar 

moje kroki Aby utworzyć pakiet, należy podać: -

<target name="CreatingExe" depends="SignedJar"> 
      <fx:deploy width="800" height="600" nativeBundles="all" outdir="${OutputPath}" outfile="${app.name}"> 
       <fx:info title="${app.title}"/> 
        <fx:application name="${app.title}" mainClass="${main.class}"/> 
        <fx:resources> 
         <fx:fileset dir="${OutputPath}" includes="*.jar"/> 
       <fx:fileset dir="${WorkingFolder}/temp"/> 
      </fx:resources> 
     </fx:deploy> 
</target> 

Co jest bardziej potrzebne w pliku build.xml, aby aplikacja była poprawnie uruchamiana za pomocą polecenia exe ?

Dzięki

+1

jdk7u10 zawiera wszystkie narzędzia wykonawcze i programistyczne javafx, więc nie powinieneś używać bitów javafx poza katalogiem jdk - tzn. Nigdy nie używaj niczego z 'C: \ Program Files \ Oracle \ JavaFX 2.2 Runtime'. – jewelsea

+0

@jewelsea Zaktualizowaliśmy naszą ścieżkę do jfxrt.jar jako - $ {env.JAVA_HOME} /jre/lib/jfxrt.jar, nic się nie zmieniło !! Jak mogę skopiować kompletny folder jre podczas tworzenia pakietu do folderu "Pakiety \ MojaAplikacja \ runtime \ jre". –

+0

Mówi się, że "Tylko podzbiór Java Runtime jest włączony domyślnie.Niektóre opcjonalne i rzadko używane pliki są wykluczone, aby zmniejszyć rozmiar paczki, takie jak wszystkie pliki wykonywalne .Jeśli potrzebujesz czegoś, co nie jest włączone domyślnie, musisz skopiuj go jako etap przetwarzania końcowego. W przypadku pakietów instalowalnych możesz to zrobić ze skryptu konfiguracyjnego, który zostanie wykonany po zapełnieniu osobnego folderu aplikacji. " Ale jak to zrobić? Nie mam pomysłu. –

Odpowiedz

2

Problem nie wprowadza JavaFX exe rozwiązany poprzez kopiowanie JRE z "C: Program Files \ \ Java \ jdk_version \ jre" do \ wiązek \ MyApplication \ uruchomieniowe \ JRE w budowanie kroki na tworzenie exe jako -

<target name="CopyJre" depends="CreatingExe"> 
<delete dir="${app_path}/bundles/MyApplication/runtime/jre"/> 
<mkdir dir="${app_path}/bundles/MyApplication/runtime/jre"/> 
<copy todir=${app_path}/bundles/MyApplication/runtime/jre"> 
    <fileset dir="${env.JAVA_HOME}/jre" /> 
</copy> 
</target> 

JAVA_HOME = c: \ Program Files \ Java \ jdk_version

Thanks

Powiązane problemy