JavaFX 创建 jar 文件错误


Parent root = FXMLLoader.load(getClass().getResource("kibAr//kibArPerson.fxml"));

第 12 行 src 包中的 kibAr 包

C:>java -jar person.jar
Exception in Application start method
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown So
urce)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$147(
Unknown Source)
        at com.sun.javafx.application.LauncherImpl$$Lambda$1/14832625.run(Unknow
n Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
        at kibAr.AnaEkran.start(AnaEkran.java:18)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153
(Unknown Source)
        at com.sun.javafx.application.LauncherImpl$$Lambda$50/25863743.run(Unkno
wn Source)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(Unknown
 Source)
        at com.sun.javafx.application.PlatformImpl$$Lambda$46/27949311.run(Unkno
wn Source)
        at com.sun.javafx.application.PlatformImpl.lambda$null$164(Unknown Sourc
e)
        at com.sun.javafx.application.PlatformImpl$$Lambda$48/13569241.run(Unkno
wn Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(Unknown S
ource)
        at com.sun.javafx.application.PlatformImpl$$Lambda$47/31743054.run(Unkno
wn Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$141(Unknown Source)
        at com.sun.glass.ui.win.WinApplication$$Lambda$38/7345883.run(Unknown So
urce)
        ... 1 more

当我运行 jar 文件不显示窗口后,我使用 Eclipse 创建了 jar 文件(导出>可运行的 jar 文件)。

从cmd运行jar文件并显示此错误后。我该如何解决这个问题?

由于您没有显示可重现的示例,并且可能会有一些错误,因此这里有一个确实有效的示例:

创建一个包应用程序并将此类放入其中:

package application;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            Parent root = FXMLLoader.load(getClass().getResource("/application/Test.fxml"));
            Scene scene = new Scene(root,400,400);
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        launch(args);
    }
}

在包应用程序中创建一个"Test.fxml"。

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8">
   <children>
      <Pane layoutX="-125.0" layoutY="-143.0" prefHeight="200.0" prefWidth="200.0">
         <children>
            <Button layoutX="134.0" layoutY="161.0" mnemonicParsing="false" text="Button" />
         </children>
      </Pane>
   </children>
</AnchorPane>

在 Eclipse 中选择

导出 -> 可运行的 JAR 文件 -> 将所需的库提取到生成的 JAR 中

(当然,您需要指定正确的启动配置)

可以执行生成的 JAR。

如果你有别的东西,如果你需要帮助,你必须展示它。

相关内容

最新更新