应用程序启动方法java.lang.reflect.InvocationTargetException JavaFX映像转换中出现异常
当我尝试为我的JavaFX应用程序添加图像转换时,它抛出了这个错误,我在Stackoverflow中检查了前面的问题和答案,但是所有的解决方案都只针对每个问题。我使用的是netbeans IDE 使用以下命令执行H:\thirdf\FinalF\dist\run2135548605\FinalF.jar 平台C:\Program Files\Java\jdk1.8.0\u 101\jre/bin/Java中的异常 应用程序启动方法java.lang.reflect.InvocationTargetException 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法在 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:498 at java:389 在 com.sun.javafx.application.LaunchImpl.LaunchApplicationLaunchImpl.java:328 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法在 sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:62 在 sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:43 java:498 at launcher.LaunchHelper$FXHelper.MainLaunchHelper.java:767 原因:java.lang.RuntimeException:应用程序启动时出现异常 方法在 com.sun.javafx.application.LaunchImpl.launchApplication1LauncherImpl.java:917 在 lambda$launchApplication$155LaunchImpl.java:182 在java.lang.Thread.runThread.java:745处,由以下原因引起: javafx.fxml.LoadException: 文件:/H:/thirdf/FinalF/dist/run2135548605/FinalF.jar/finalf/FXMLDocument.fxml应用程序启动方法java.lang.reflect.InvocationTargetException JavaFX映像转换中出现异常,java,javafx,netbeans,javafx-8,fxml,Java,Javafx,Netbeans,Javafx 8,Fxml,当我尝试为我的JavaFX应用程序添加图像转换时,它抛出了这个错误,我在Stackoverflow中检查了前面的问题和答案,但是所有的解决方案都只针对每个问题。我使用的是netbeans IDE 使用以下命令执行H:\thirdf\FinalF\dist\run2135548605\FinalF.jar 平台C:\Program Files\Java\jdk1.8.0\u 101\jre/bin/Java中的异常 应用程序启动方法java.lang.reflect.InvocationTarge
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane id="AnchorPane" prefHeight="462.0" prefWidth="473.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.101" fx:controller="finalf.FXMLDocumentController">
<children>
<Button fx:id="button" layoutX="126.0" layoutY="225.0" onAction="#handleButtonAction" prefHeight="31.0" prefWidth="212.0" text="Play" />
<Label fx:id="label" layoutX="126" layoutY="120" minHeight="16" minWidth="69" />
<Button layoutX="126.0" layoutY="312.0" mnemonicParsing="false" prefHeight="31.0" prefWidth="212.0" text="Instructions" />
<TextField layoutX="126.0" layoutY="141.0" prefHeight="31.0" prefWidth="212.0" />
</children>
</AnchorPane>
在
javafx.fxml.FXMLLoader.constructLoadExceptionFXMLLoader.java:2601
在javafx.fxml.fxmloader.loadImplfxmloader.java:2579处
javafx.fxml.fxmloader.loadImplfxmloader.java:2441 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3214 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3175 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3148 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3124 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3104 at
javafx.fxml.fxmloader.loadfxmloader.java:3097 at
finalf.finalf.startFinalF.java:38 at
lambda$launchApplication1$162LaunchImpl.java:863
在
com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175PlatformImpl.java:326
在
com.sun.javafx.application.PlatformImpl.lambda$null$173PlatformImpl.java:295
位于java.security.AccessController.doPrivilegedNative的方法
com.sun.javafx.application.PlatformImpl.lambda$runLater$174PlatformImpl.java:294
在
com.sun.glass.ui.invokelateDispatcher$Future.runinvokelateDispatcher.java:95
位于com.sun.glass.ui.win.WinApplication.\u runLoopNative方法位于
com.sun.glass.ui.win.WinApplication.lambda$null$148WinApplication.java:191
... 1更多原因:java.lang.NullPointerException:位置不正确
必修的。在javafx.fxml.fxmloader.loadImplfxmloader.java:3207
在javafx.fxml.fxmloader.loadImplfxmloader.java:3175处
javafx.fxml.fxmloader.loadImplfxmloader.java:3148 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3124 at
javafx.fxml.fxmloader.loadImplfxmloader.java:3104 at
javafx.fxml.fxmloader.loadfxmloader.java:3097 at
finalf.FXMLDocumentController.loadSplashScreenFXMLDocumentController.java:55
在
FXMLDocumentController.initializeFXMLDocumentController.java:69
在javafx.fxml.fxmloader.loadImplfxmloader.java:2548。。。还有17个
运行应用程序finalf.finalf Java结果时出现异常:1
这是密码
fxml.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.StackPane?>
<StackPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="574.0" xmlns="http://javafx.com/javafx/8.0.101" xmlns:fx="http://javafx.com/fxml/1">
<children>
<ImageView fitHeight="450.0" fitWidth="560.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@loader.png" />
</image>
</ImageView>
</children>
</StackPane>
FinalF.java
package finalf;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class FinalF extends Application {
@FXML
private Button button;
@FXML
private Label label;
@FXML
void handleButtonAction(ActionEvent event){
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
让我们试试看
在FXMLDocumentController.java中,更改loadSplashScreen方法中的第一行,
从
到
在FXMLDocument.fxml中,将fx:id=root添加到AnchorPane部分。改变它
从
到
希望通过这两个步骤解决您的问题。如果您清楚地看到FXMLLoader.java:2579上存在空指针异常,并且它正在尝试查找文件:/H:/thirdf/FinalF/dist/run2135548605/FinalF.jar/finalf/fxml文件。fxml@Gaurav但是我已经添加了'Parent root=fxmloader.loadgetClass.getResourceFXMLDocument.fxml;'在FinalF.javait中,它位于类路径中,或者您可以使用classloader来获取这个getClass.getClassLoader.getResourcepathRead关于classloader的一些信息&我们如何使用classloader获取资源在您看来并不是那么复杂problem@Gaurav更新了,但我还是犯了同样的错误:老兄,你太棒了:D解决了AnchorPane元素中的问题,你不能只写id=AnchorPane,你必须添加fx:id=root。
package finalf;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.stage.Stage;
public class FinalF extends Application {
@FXML
private Button button;
@FXML
private Label label;
@FXML
void handleButtonAction(ActionEvent event){
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
StackPane pane = FXMLLoader.load(getClass().getResource("/SplashFXML.fxml"));
StackPane pane = FXMLLoader.load(getClass().getResource("SplashFXML.fxml"));
AnchorPane id="AnchorPane" prefHeight="462.0" prefWidth="473.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.101" fx:controller="finalf.FXMLDocumentController"
AnchorPane id="AnchorPane" fx:id="root" prefHeight="462.0" prefWidth="473.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.101" fx:controller="finalf.FXMLDocumentController"