netbeans 之外的 java hashmap 空指针

标签 java netbeans nullpointerexception javafx

我在 netbeans 中有以下代码(在同一个项目中使用 javafx):

public class ExperimentControler {
    public static HashMap<String,Double> userInput = null;
    public static ObservableMapWrapper<String,Double> userInputObservable = null;   
}

static final String totalDistance = "Total distance";
public static void main(String[] args) {
    ExperimentControler.userInput = new HashMap<String,Double>();
    ExperimentControler.userInput.put(totalDistance, 300.0);
    ExperimentControler.userInputObservable = new ObservableMapWrapper<String,Double>(ExperimentControler.userInput);

    Application.launch(PhysicsGui.class, args);
}

@Override
public void start(Stage primaryStage) {
    ExperimentControler.userInput.get(totalDistance);
    //...
}

这在 netbeans 中运行得很好。
如果我“清理并构建”项目,生成的 .jar 文件会在这一行抛出空指针异常:

ExperimentControler.userInput.get(totalDistance);

此外,这是我在 netbeans 之外的 java 版本:

>java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)

我也试过 jre 1.7.0 但结果完全一样..
在 netbeans 中我有 jdk 1.6.0_26。

最佳答案

好的...感谢 Kal 的评论:

How are you running this program? Have you tried putting System.out.printlns() in your main method to make sure that they are called before the app crashes with a NPE?

我发现以下 (javafx) 代码(一定是这个..没有其他入口点):

@Override
public void start(Stage primaryStage) {

当我独立运行它时绕过 main()。也许根本原因完全不同我不知道..
事实是,在 netbeans 中,main() 正在运行,而在独立平台上则没有..
我还检查了 jar 的 list ,主类是正确的。 (以防万一)

我无法想到 main 根本没有运行的事实!
因此,我将 main() 中的代码移到了重写的启动方法中,它起作用了。

规范说 start() 方法是 javafx 应用程序的主要入口点。 但是,根据我的理解,main() 仍应在 start() 之前调用。这可能是 javafx 上的错误。

关于netbeans 之外的 java hashmap 空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7003332/

相关文章:

java - 有没有办法在没有实体的情况下使用 `@Procedure` 注释?

java - JOGL 2.0 的 GLProfile 中的空指针异常

java - Firefox 未在 Windows 机器上的首选项中更新应用程序关联

java - 如何为 NetBeans 设置 Tomcat 管理器应用程序用户名和密码?

java - 如何将 Netbeans 项目(使用 Java DB)从 Windows 迁移到 Linux?

java - 如何设置JButton的背景?

java - 什么是 NullPointerException,我该如何解决?

java - 为什么我在调用 JasperFillManager 时在 java.lang.Class.isAssignableFrom(Native Method) 处得到 java.lang.NullPointerException?

java - Java最通用的第三方链表是什么?

java - 如何使用JavaMail从Google Mail(Gmail)中读取带有多个标签的邮件?