【问题标题】:Exception in thread "main" java.lang.NullPointerException - Package线程“main”中的异常 java.lang.NullPointerException - 包
【发布时间】:2014-10-31 21:00:33
【问题描述】:

我正在阅读 OCA Java SE 7 学习指南,并且正在阅读软件包。但是,我在 Eclipse 中输入了在书中找到的相同代码,但出现了这个错误。 错误是

线程“main”中的异常 java.lang.NullPointerException 在 com.ocaj.exam.tutorial.MainClass.main(MainClass.java:12)

这是我的代码...

package com.ocaj.exam.tutorial;     //Package statement

//Imports class ArrayList from the java.util package
import java.util.ArrayList;
//Imports all classes from the java.io package
import java.io.*;

public class MainClass {
public static void main(String[] args) {
        //Creates console from java.io package
    Console console = System.console();
    String planet = console.readLine("\nEnter your favourite planet: ");
        //Creates list for planets
    ArrayList planetList = new ArrayList();
    planetList.add(planet);             //Adds users input into the list
    planetList.add("Gliese 581 c");     //Adds a string to the list
    System.out.println("\nTwo cool planets: " + planetList);
}
}

非常感谢

【问题讨论】:

    标签: java nullpointerexception package


    【解决方案1】:

    System.console 可以根据 JVM 运行的环境返回 null

    来自javadoc

    如果没有可用的控制台设备,则调用该方法将返回 null。

    Eclipse 是其中System.console 返回null 的环境之一,因为它通常使用没有关联控制台窗口的javaw

    改用java.util.Scanner,没有这个限制。

    Scanner scanner = new Scanner(System.in);
    String planet = scanner.nextLine();
    

    【讨论】:

      【解决方案2】:

      System.console() 如果您正在运行的程序没有关联的控制台,将返回 null。尝试在控制台(“命令提示符”)中运行您的程序。

      【讨论】:

        【解决方案3】:

        那是因为如果您使用的是 eclipse,则不是直接从系统控制台运行它。

        要使其正常工作,请替换以下代码:

        String planet = console.readLine("\nEnter your favourite planet: ");
        

        作者:

        System.out.print("\nEnter your favourite planet: ");
        Scanner scanner = new Scanner(System.in);
        String planet = scanner.nextLine();
        scanner.close();
        

        【讨论】:

          猜你喜欢
          • 2013-11-21
          • 1970-01-01
          • 2012-12-09
          • 2023-03-10
          • 2013-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-05
          相关资源
          最近更新 更多