Невозможно развернуть приложение JavaFX с внешними библиотеками в JAR
Я занимаюсь разработкой приложения JavaFX в Eclipse. Приложение имеет внешние библиотеки, такие как log4j и другие, и отлично работает с Eclipse. Я'мы пытались развернуть его из Eclipse в качестве jar-файла Runnable через встроенную функцию Eclipse, и он хорошо работает на некоторых компьютерах, в то время как на других это может привести к неясной ошибке Undefined Link. После копания кажется, что JavaFX должен быть специально упакован либо через скрипт ANT, либо черезjavafxpackager
приложение.
За свою жизнь я могуКажется, что ни один из этих методов не может развернуть работоспособную банку. Пробуя любой из этих методов, я получаю исключение. Вещи, которые ямы пробовали:
Создайте приложение JavaFX с помощью сценария ANT, ниже приведен фрагмент соответствующих частей сценария сборки
Compiling the source
Creating the main jar file
Скомпилировав / сгенерировав jar через скрипт ant, я получаю всплывающее окно на полсекунды и "Исключение в методе запуска приложения » в консоли, без трассировки стека. Я'мы пробовали запустить Java с-XX:-OmitStackTraceInFastThrow
флаг, но он все равно выигралдайте мне трассировку стека.
Работает черезjavafxpackager
выдает следующую ошибку:
RenderJob.run: внутреннее исключение java.lang.UnsatisfiedLinkError: com.sun.prism.d3d.D3DContext.nSetBlendEnabled (JZ Z) I в com.sun.prism.d3d.D3DContext.nSetBlendEnabled (собственный метод) в com.s .d3d.D3DContext.initState (D3DContext.java:84) в com.sun.prism.d3d.D3DResourceFactory. (D3DResourceFactory.java:5 7) в com.sun.prism.d3d.D3DPipeline.createResourceFactoryj (D3DPipe7.jp: ) на com.sun.prism.d3d.D3DPipeline.getD3DResourceFactory (D3DPipeline.java: 153) на com.sun.prism.d3d.D3DPipeline.findDefaultResourceFactory (D3DPipeline. java: 179) на com.sun.prism.d3d.D3DPipeline. getDefaultResourceFactory (D3DPipeline.j ava: 201) по адресу com.sun.prism.GraphicsPipeline.getDefaultResourceFactory (GraphicsPipe line.java:97) по адресу com.sun.javafx.tk.quantum.QuantumRenderer $ 3.run (QuantumRendej): java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:47 1) в java.util.concurrent.FutureTask.runAndReset (FutureTask.java:304) в com.sun.prism.render.RenderJob.run (RenderJob) .java: 37 ) в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. Java: 1145) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor .java: 615) на com.sun.javafx.tk.quantum.QuantumRenderer $ PipelineRunnable.run (Quantu mRenderer.java:98) lang.Thread.run (Thread.java:724)