复习Java核心技术——卷1,第3章,控制台输入输出

    练习过程中,发现在eclipse下System.console()是为null的,这也正常的,因为IDE没有连接一个console。在cmd情况下,很久没有用java命令来运行程序了,生疏了不少,都是IDE惯的。
    走了点弯路,最后还是明白了当前文件夹加上包,就是一个完整路径,所以在cmd中,当前路径调整到D:\workspace\CoreJava\bin之后,就可以直接键入java com.zy.corejava.volume1.chapter3.InputTest。如果是在其他目录下,只要把D:\workspace\CoreJava\bin作为classpath加入就可以了,例如java -classpath CoreJava/bin com.zy.corejava.volume1.chapter3.InputTest。
    在这里,我犯的错误,就是直接把当前工作目录调整到chapter3下了,classpath设置的时候,也是直接设置到chapter3下了,这样路径就会变成D:\workspace\CoreJava\bin\com\zy\corejava\volume1\chapter3\com\zy\corejava\volume1\chapter3\InputTest,显然多了一个com\zy\corejava\volume1\chapter3。

import java.io.Console;
import java.util.Scanner;

public class InputTest
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);

        // get first input
        System.out.println("What is your name?");
        String name = in.nextLine();

        // get second input
        System.out.println("How old are you?");
        int age = in.nextInt();

        // display outpout on console
        System.out.println("Hello, " + name + ". Next year, you will be " + (age + 1));

        // get user name and password
        // In eclipse, the cons will be null.
        // In cmd, use "D:\workspace\CoreJava\bin>java com.zy.corejava.volume1.chapter3.InputTest"
        // or "D:\workspace>java -classpath CoreJava/bin com.zy.corejava.volume1.chapter3.InputTest"
        Console cons = System.console();
        String userName = cons.readLine("User name:");
        char[] password = cons.readPassword("Password:");
        System.out.println("Your user name is: " + userName + ", and your password is: " + String.valueOf(password));
    }
}

你可能感兴趣的:(java,console,cmd)