Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
覆盆子皮&x2B;maven+;jdk1.8+;javafx_Java_Maven_Maven 3_Raspberry Pi - Fatal编程技术网

覆盆子皮&x2B;maven+;jdk1.8+;javafx

覆盆子皮&x2B;maven+;jdk1.8+;javafx,java,maven,maven-3,raspberry-pi,Java,Maven,Maven 3,Raspberry Pi,我正在开发一个JavaFx应用程序,它必须运行在raspberry PI上。 我按照所有步骤在Raspberry上安装jdk1.8,下载maven 3.1.1并在Raspberry上复制该项目 当我跑的时候 mvn clean package 构建成功,但当我运行命令时 java -cp app.jar my.main.class 如本文所述() 我收到这个错误: Exception in Application start method java.lang.reflect.Invocati

我正在开发一个JavaFx应用程序,它必须运行在raspberry PI上。 我按照所有步骤在Raspberry上安装jdk1.8,下载maven 3.1.1并在Raspberry上复制该项目

当我跑的时候

mvn clean package
构建成功,但当我运行命令时

java -cp app.jar my.main.class
如本文所述()

我收到这个错误:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:367)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:894)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NoClassDefFoundError: javafx/scene/media/Media
    at com.ilgala.dmp.components.Playlist.createPlayer(Playlist.java:78)
    at com.ilgala.dmp.components.Playlist.initPlaylist(Playlist.java:55)
    at com.ilgala.dmp.components.Playlist.<init>(Playlist.java:44)
    at com.ilgala.dmp.videoPlayer.VideoPlayer.<init>(VideoPlayer.java:28)
    at com.ilgala.dmp.App.start(App.java:44)
    at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:331)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:297)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:294)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:294)
    at com.sun.glass.ui.lens.LensApplication$RunnableEvent.dispatch(LensApplication.java:182)
    at com.sun.glass.ui.lens.LensApplication._runLoop(LensApplication.java:861)
    at com.sun.glass.ui.lens.LensApplication.access$1700(LensApplication.java:58)
    at com.sun.glass.ui.lens.LensApplication$4.run(LensApplication.java:914)
    ... 1 more
Caused by: java.lang.ClassNotFoundException: javafx.scene.media.Media
    at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 16 more
Exception running application my.app

你应该直接看

Javafx maven插件:

它是构建javafx应用程序的一个很好的插件,您可以使用它的命令将jfxrt.jar链接到maven构建:

mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath
以下是该命令的说明:

我亦引述:

如果您不想使用fix classpath Maven命令或 运行时出现问题。您可以尝试手动移动JAR文件 从lib目录到ext目录。没有了 需要更多的魔法


您确实不应该在实际项目中使用Java8。您在pom中将项目指定为Java7。为什么要使用Java8作为运行时环境?好吧,我遵循了我在OracleJavaFX页面上找到的指南,这就是为什么我要使用它。Raspberry已经有JDK1.7.0_40了,我应该用它吗?我无法想象为什么他们会推荐早期的access构建。我将使用Java7进行生产性使用。虽然这可能与您的问题无关。我在raspberry上使用maven 3.0.5运行zenjava插件时遇到此错误:未能执行目标com。zenjava:javafx maven插件:2.0:fix类路径(默认cli)在独立项目pom上:执行target com.zenjava:javafx maven plugin:2.0:fix类路径失败:plugin com.zenjava:javafx maven plugin:2.0或其依赖项之一无法解析:无法在指定路径处找到工件javafx packager:javafx packager:jar:1.7/usr/lib/jvm/jdk-7-oracle-armhf/jre/。/lib/antjavafx。jar@IIGala这是一个bug,获取2.0-SNAPSHOT来修复它:完成后,jvm文件夹上的一个lib文件夹丢失,然后插件工作。现在覆盆子似乎满足了我的需要,谢谢大家!
mvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath