2013-01-10 31 views
8

Tôi đã tạo một ứng dụng JavaFX và tạo gói gốc bằng cách sử dụng Ant. Khi tôi đang cố gắng để khởi động ứng dụng bằng cách sử dụng Jar từ bó tạo ra với nhấp đúp chuột, nó khởi chạy thành công ứng dụng của tôi. Nhưng khi tôi đang cố gắng nhấp đúp vào MyApplication.exe (nói), nó ném Lỗi JavaFX Launcher "Ngoại lệ trong khi chạy Ứng dụng".Không thể khởi chạy ứng dụng JavaFX với gói gốc exe

Tôi đã so sánh cả jre, có nhiều tệp jar, exe, dll và một số thuộc tính bị thiếu mà tôi tìm thấy.

tôi có các thiết lập môi trường -

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 và JREFX_HOME được sử dụng như trong build.xml của tôi để lấy kiến-javafx.jar và jfxrt.jar -

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

bước của tôi để tạo nhóm là -

<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> 

Điều gì cần thiết trong tệp build.xml để ứng dụng khởi chạy đúng với exe ?

Cảm ơn

+1

jdk7u10 bao gồm tất cả các công cụ phát triển và chạy javafx tất cả, vì vậy bạn không nên nguồn hoặc sử dụng các bit javafx bên ngoài thư mục jdk - tức là không sử dụng bất kỳ thứ gì từ 'C: \ Program Files \ Oracle \ JavaFX 2.2 Runtime'. – jewelsea

+0

@jewelsea chúng tôi đã cập nhật đường dẫn của mình để lấy jfxrt.jar là - $ {env.JAVA_HOME} /jre/lib/jfxrt.jar, không có gì thay đổi !! Làm thế nào tôi có thể sao chép thư mục jre hoàn chỉnh trong khi tạo bó vào thư mục "bundles \ MyApplication \ runtime \ jre". –

+0

Người ta nói rằng "Chỉ một tập hợp con của Java Runtime được bao gồm theo mặc định. Một số tệp tùy chọn và hiếm khi được sử dụng sẽ bị loại trừ để giảm kích thước gói, chẳng hạn như tất cả các tệp thực thi. để sao chép nó dưới dạng bước hậu xử lý. Đối với các gói có thể cài đặt, bạn có thể thực hiện việc này từ tập lệnh cấu hình được thực hiện sau khi điền thư mục ứng dụng độc lập. " Nhưng làm thế nào? Tôi không có ý tưởng. –

Trả lời

2

Vấn đề không tung ra JavaFX exe giải quyết bằng cách sao chép jre từ "C: \ Program Files \ Java \ jdk_version \ jre" để \ bó \ MyApplication \ runtime \ jre trong xây dựng bước khi tạo exe như -

<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

Cảm ơn

Các vấn đề liên quan