在学习《Java核心技术》一书过程中,碰到了使用控制台Console读取密码的问题。但是在IDEA中编程运行的时候,却返回的是空值问题。代码如下:
package com.achao.InputTest;
import java.io.Console;
import java.util.Scanner;
public class InputTest {
public static void main(String[] args) {
/*
Scanner in = new Scanner(System.in);
System.out.println("What is your name?");
String name = in.nextLine();
System.out.println("How old are you?");
int age = in.nextInt();
System.out.println("Hello, "+name+". Next year, you'll be "+age+1);
*/
Console console=System.console();
String username = console.readLine("User name: ");
char[] passwd=console.readPassword("Password: ");
System.out.println("User name: "+username+", password: "+passwd.toString());
}
}
后来了解从控制台中读取密码必须从真正的命令行中读取,官方文档如下所示:
接下来使用命令行来编译运行该java文件,但又遇到了一些问题:找不到或无法加载主类
想了下,应该是没有导入包,造成程序入口地址未能找到的原因。
平时我们直接编写java文件的时候,比如以下代码:
class hello
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
因为没有包名,所以可以直接编译运行。
而像我们上述的代码,在编译的时候就需要加上包名进行编译,并加上包名运行。