升级到JDK 13和JavaFX 13后未找到媒体类
当我有JDK 8(我想?)和e(fx)clipse附带的默认JavaFX时,我做了一个项目。它工作得很好,但最近我将它们升级到JDK13.0.1和JFX13,现在它崩溃了,因为它找不到媒体类 该项目很简单,它只是从mp4文件的中间播放,并在1秒后暂停视频。代码如下:升级到JDK 13和JavaFX 13后未找到媒体类,java,javafx,Java,Javafx,当我有JDK 8(我想?)和e(fx)clipse附带的默认JavaFX时,我做了一个项目。它工作得很好,但最近我将它们升级到JDK13.0.1和JFX13,现在它崩溃了,因为它找不到媒体类 该项目很简单,它只是从mp4文件的中间播放,并在1秒后暂停视频。代码如下: package test; import javafx.animation.KeyFrame; import javafx.animation.Timeline; import javafx.application.Applic
package test;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.stage.Stage;
import javafx.util.Duration;
public class main extends Application {
public static void main(String[] args) {
launch(args);
}
public MediaPlayer mp;
public Timeline tl;
@Override
public void start(Stage win) throws Exception {
Media m=new Media(ClassLoader.getSystemResource("test/videoplayback.mp4").toExternalForm());
mp=new MediaPlayer(m);
mp.setVolume(0.5);
MediaView mv=new MediaView(mp);
AnchorPane pane=new AnchorPane();
pane.getChildren().addAll(mv);
Scene s=new Scene(pane,640,360);
win.setScene(s);
win.show();
p();
}
public void p() {
mp.play();
tl=new Timeline(
new KeyFrame(Duration.seconds(0.01),event->{
mp.seek(mp.getStartTime().add(Duration.seconds(118.4)));
}),
new KeyFrame(Duration.seconds(1),event->mp.pause())
);
tl.playFromStart();
}
}
这里是错误
Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: java.lang.NoClassDefFoundError: javafx/scene/media/Media
at test.main.start(main.java:28)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
... 1 more
Caused by: java.lang.ClassNotFoundException: javafx.scene.media.Media
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 10 more
Exception running application test.main
我已经将整个javafx库添加到构建路径中,包括javafx.media.jar。其他常见的javaFX类似乎可以工作,但javaFX.scene.media下的任何类都不能工作。我做了一个新项目,就像这个一样。除了javafx.scene.media下的类之外,其他一切都可以工作
我没有足够的脑细胞知道我应该从这里去哪里,所以请帮助我。提前谢谢 按照@jewelsea的说明,我确实按照他们的说明安装了javafx,正如我所说,它可以正常工作,但当你,您是否正在添加
javafx.media
?按照@jewelsea的说明进行操作我确实按照说明安装了javafx,正如我所说,它可以工作,但与媒体相关的任何内容都无法工作当您添加javafx.media
?