当我尝试运行时,它会给我一个错误说
Exception in thread "main" java.lang.NullPointerException
at lsamelson_lab5.LSamelson_Lab5.main(LSamelson_Lab5.java:21)
Java Result: 1
第21行是要求第一个用户输入的行。
我正在运行Ubuntu,这是因为我没有正确导入控制台,或者我的java文件出了什么问题?
package lsamelson_lab5;
import java.io.Console;
/**
*
* @author binka
*/
public class LSamelson_Lab5 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here\
Console console = System.console();
String input = console.readLine("Please enter your first number:");
int newinput = Integer.parseInt(input);
String input2 = console.readLine("Please enter your second number: ");
int newinput2 = Integer.parseInt(input2);
int sum = newinput + newinput2;
int diff = newinput - newinput2;
int mult = newinput * newinput2;
float div = newinput / newinput2;
System.out.print(sum);
System.out.print(diff);
System.out.print(mult);
System.out.print(div);
}
}
答案 0 :(得分:2)
使用
System.out.print("Please enter your first number:")
而不是
String input = console.readLine("Please enter your first number:");
Console::readLine()不是你需要的 用
读取行Scanner in = new Scanner(System.in);
编辑
Scanner in = new Scanner(System.in);
System.out.println("Please enter your first number:");
int newinput = in.nextInt();
System.out.println("Please enter your second number: ");
int newinput2 = in.nextInt();
答案 1 :(得分:2)
来自java.io.Console
的{{3}}
如果此虚拟机具有控制台,则它由此类的唯一实例表示,可以通过调用System.console()方法获取该实例。如果没有可用的控制台设备,则调用该方法将返回 null 。
Eclipse等IDE将导致无法找到控制台。但是,从命令提示符/ * nix shell 通常运行提供了一个可以使用的控制台。
作为在Console
不可用的环境中运行的解决方法,可以使用javadoc。
Scanner alernativeInput = new Scanner(System.in);