当前位置: 首页 > 知识库问答 >
问题:

通过JNLP运行FXML JavaFX应用程序java.lang.NullPointerException:需要位置

酆高翰
2023-03-14

解决办法是:

  1. 使用路径/somefxml.fxml。
  2. 使用FXMLLoader.Load(getClass().GetClassLoader().GetResource(“SomeFXml.fxml”));
  3. 使用FXMLLoader.Load(getClass().GetClassLoader().GetResource(“packageName/somefxml.fxml”));
  4. 检查文件是否存在。
  5. 在罐子上签名。

我可能都试过了。

java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3207)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at xy.XY.start(XY.java:36)
at com.sun.javafx.applet.FXApplet2$2.run(FXApplet2.java:134)
at com.sun.javafx.application.PlatformImpl.lambda$null$173    (PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread"     java.lang.RuntimeException: java.lang.NullPointerException: Location is required.
at com.sun.javafx.applet.FXApplet2$2.run(FXApplet2.java:150)
at com.sun.javafx.application.PlatformImpl.lambda$null$173    (PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3207)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at xy.XY.start(XY.java:36)
at com.sun.javafx.applet.FXApplet2$2.run(FXApplet2.java:134)
... 7 more
package testfxmlpackage;

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

public class TestFXMLPackage extends Application {

  @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);
  }  
}
package testfxmlpackage;

import javafx.fxml.FXML;
import javafx.scene.text.TextFlow;

public class FXMLDocumentController {

   @FXML TextFlow xy;

}
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.TextFlow?>

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" fx:controller="testfxmlpackage.FXMLDocumentController">
    <children>
        <TextFlow fx:id="xy" layoutX="22.0" layoutY="234.0" prefHeight="74.0" prefWidth="433.0" style="-fx-border-color: ADD8E6;" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="22.0" AnchorPane.rightAnchor="142.0" />               
    </children>
</AnchorPane>

共有1个答案

朱博实
2023-03-14

我没有试过,但是看了一下源代码,我认为活动的SecurityManager可能是问题的原因。

可能的解决办法

  • 尝试通过在JNLP文件中指定security元素来禁用SecurityManager(如果这完全禁用SecurityManager,则不是100%)

    null
<dependency>
    <groupId>org.drombler.commons</groupId>
    <artifactId>drombler-commons-fx-core</artifactId>
    <version>0.7</version>
</dependency>
 类似资料:
  • 问题内容: 我遇到了NullPointerException问题。我已尽力而为,但无法解决此问题。我正在为我的项目实现POM模型(selenium)。 这一页: 测试类: 错误日志: 类: 有什么帮助吗? 问题答案: 您需要先初始化。如我所见,您正在创建但未初始化的引用,请尝试如下操作:- 注意 :-如果要初始化,则需要先下载chromedriver并设置系统属性,然后再将驱动程序初始化为:- 所

  • 当我通过命令行运行spring boot应用程序时,我面临的问题是 这很好,但在intellij中作为应用程序运行时,我发现以下错误- 可能的原因是什么,我应该在哪里查看配置修复? 关于这个模式还有其他问题,但没有一个提到这个错误- SpringBoot应用程序通过Maven运行良好,但不能通过IDEIntellijIDEA运行 ApplicationContextException:由于缺少Se

  • 我有申请。我通过 或调试 它起作用了。我如何将'-xmx'参数传递到我运行的应用程序(调试)中?有没有可能做到这一点而不影响文件? 这是我将它作为一个普通的Java应用程序运行的时候 在第二种情况下,当我使用-xms、-xmx作为普通Java应用程序运行应用程序时,提交的内存大小约为3.5GiB,因为我传递了参数。

  • 这是Duke.java文件: 更新:我将lib文件夹导入到我的项目中,现在错误消失了。但是在我运行项目时发生了另一个错误,这是“由以下原因引起的:java.lang.NullPointerException:输入流不能为null”

  • 当我试图通过Java Web Start部署JavaFX桌面应用程序时,特别是当它决定下载JAR时,我得到了不一致的行为。我的代码签名了。 所需要的: > 桌面应用程序,100%脱机工作,但在有internet连接时检查更新。 如果发现更新,询问用户是否要下载。如果是,更新并运行。如果没有,则运行缓存版本。 桌面图标需要制作。 目前正在计划发生的事情: 在首次运行时,web start将下载并完美

  • 问题内容: 我需要通过.bat文件运行Java应用程序。有人可以帮忙吗? 问题答案: 只需创建一个.bat文件,其中包含以下几行: