Não é possível implantar o aplicativo JavaFX com bibliotecas externas em um JAR

Estou desenvolvendo um aplicativo JavaFX no Eclipse. O aplicativo tem bibliotecas externas, como log4j e outros, e funciona perfeitamente no Eclipse. Eu tentei implantá-lo do Eclipse como um jar Runnable através do recurso interno do Eclipse, e ele funciona bem em alguns computadores, enquanto em outros me daria um erro obscuro do link indefinido. Depois de cavar, parece que o JavaFX precisa ser especialmente empacotado através de um script ANT ou através dojavafxpackager aplicação.

Para a vida de mim eu não consigo implantar um jar runnable através de qualquer um desses métodos. Tentando qualquer um desses métodos, recebo uma exceção. Coisas que eu tentei:

Construa o aplicativo JavaFX por meio de um script ANT, abaixo está um trecho das partes relevantes do script de construção

<path id="classpath">
    <fileset dir="${lib.dir}" includes="**/*.jar"/>
    <fileset dir="${javafx.sdk.path}/jre/lib" includes="jfxrt.jar"/>
</path>

<target name="compile" depends="clean">
    <echo>Compiling the source</echo>  
    <mkdir dir="${classes.dir}"/>
    <!-- Copy over the misc files into the classes dir -->
    <copy todir="${classes.dir}/bundles">
       <fileset dir="${src.dir}/bundles"/>
    </copy>
    <copy todir="${classes.dir}/css">
        <fileset dir="${src.dir}/css"/>
    </copy>
    <copy todir="${classes.dir}/img">
       <fileset dir="${src.dir}/img"/>
    </copy>
    <copy todir="${classes.dir}/views">
       <fileset dir="${src.dir}/views"/>
    </copy>

    <copy todir="${classes.dir}/bundles">
       <fileset dir="${src.dir}/bundles"/>
    </copy>

    <copy file="${src.dir}/log4j2.xml" todir="${classes.dir}"/>

    <javac target="1.7" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" debug="on">
    </javac>
</target>

<target name="jar" depends="compile">
    <echo>Creating the main jar file</echo>  
    <mkdir dir="${distro.dir}" />
    <fx:jar destfile="${distro.dir}/main.jar" verbose="true">
        <fx:platform javafx="2.1+" j2se="7.0"/>
        <fx:application mainClass="${main.class}"/>

        <!-- What to include into result jar file?
             Everything in the build tree-->
        <fileset dir="${classes.dir}"/>

        <!-- Define what auxilary resources are needed
              These files will go into the manifest file,
              where the classpath is defined -->
         <fx:resources>
            <fx:fileset dir="${distro.dir}" includes="main.jar"/>
            <fx:fileset dir="." includes="${lib.dir}/**" type="jar"/>
            <fx:fileset dir="." includes="."/>
        </fx:resources>

        <!-- Make some updates to the Manifest file -->
        <manifest>
           <attribute name="Implementation-Vendor" value="${app.vendor}"/>
           <attribute name="Implementation-Title" value="${app.name}"/>
           <attribute name="Class-Path" value="${lib.dir}"/> 
           <attribute name="Implementation-Version" value="1.0"/>
        </manifest>
    </fx:jar>
</target>

Compilando / gerando o jar através do script ant, obtive uma janela pop-up por meio segundo e "Exceção no método de início do aplicativo" no console, sem rastreamento de pilha. Eu tentei runnning java com o-XX:-OmitStackTraceInFastThrow bandeira, mas ainda não vai me dar um rastreamento de pilha.

Correndo atravésjavafxpackager dá o seguinte erro:

RenderJob.run: exceção interna java.lang.UnsatisfiedLinkError: com.sun.prism.d3d.D3DContext.nSetBlendEnabled (JZ Z) I em com.sun.prism.d3d.D3DContext.nSetBlendEnabled (Native Method) em com.sun.prism .d3d.D3DContext.initState (D3DContext.java:84) em com.sun.prism.d3d.D3DResourceFactory. (D3DResourceFactory.java:5 7) em com.sun.prism.d3d.D3DPipeline.createResourceFactory (D3DPipeline.java: 147 ) em com.sun.prism.d3d.D3DPipeline.getD3DResourceFactory (D3DPipeline.java: 153) em com.sun.prism.d3d.D3DPipeline.findDefaultResourceFactory (D3DPipeline. java: 179) em com.sun.prism.d3d.D3DPipeline. getDefaultResourceFactory (D3DPipeline.j ava: 201) em com.sun.prism.GraphicsPipeline.getDefaultResourceFactory (GraphicsPipe line.java:97) em com.sun.javafx.tk.quantum.QuantumRenderer $ 3.run (QuantumRenderer.java: 143) em java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:47 1) em java.util.concurrent.FutureTask.runAndReset (FutureTask.java:304) em com.sun.prism.render.RenderJob.run (RenderJob .java: 37 ) em java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1145) em java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor .java: 615) em com.sun.javafx.tk.quantum.QuantumRenderer $ PipelineRunnable.run (Quantu mRenderer.java:98) em java. lang.Thread.run (Thread.java:724)

questionAnswers(3)

yourAnswerToTheQuestion