转载自  JDK 6中新增的Java Console类功能概览

JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备。如果你的Java程序要与Windows下的cmd或者Linux下的Terminal交互,就可以用这个Java Console类代劳。

TestConsole.java 代码:

  1. package com.simon.testjdk6.console;
  2. import java.io.Console;
  3. public class TestConsole {
  4. /**
  5. * @param args
  6. */
  7. public static void main(String[] args) {
  8. Console console = System.console(); // 获得Console实例对象
  9. if (console != null) {              // 判断是否有控制台的使用权
  10. String user = new String(console.readLine("Enter username:"));      // 读取整行字符
  11. String pwd = new String(console.readPassword("Enter passowrd:"));   // 读取密码,输入时不显示
  12. console.printf("Username is: " + user + "\n");      // 显示用户名
  13. console.printf("Password is: " + pwd + "\n");   // 显示密码
  14. } else {
  15. System.out.println("Console is unavailable.");  // 提示无控制台使用权限
  16. }
  17. }
  18. }

Java要与Console进行交互,不总是能得到可用的Java Console类的。一个JVM是否有可用的Console,依赖于底层平台和JVM如何被调用。如果JVM是在交互式命令行(比如Windows的cmd)中启动的,并且输入输出没有重定向到另外的地方,那么就我们可以得到一个可用的Console实例。

当你有Eclipse或NetBean中运行以上代码时Console中将会有以下文字输出:

Console is unavailable.

表示Java程序无法获得Console实例,是因为JVM不是在命令行中被调用的,或者输入输出被重定向了。

在控制台中运行代码,效果将如下所示:

  1. $ java com.simon.testjdk6.console.TestConsole
  2. Enter user:Simon
  3. Enter passowrd:
  4. User is:Simon
  5. Password is:12345

我们可以看到:输入密码时,控制台时不显示我们所输入的密码字符。但是程序可以得到并输出的密码字符串。这就是JDK 6中新增的Java Console类的运行方式。

JDK 6中新增的Java Console类功能概览相关推荐

  1. java console类_Java Console

    Java Console 1 什么是Java Console Java Console类用于从控制台获取输入.它提供了读取文本和密码的方法. 如果您使用Console类读取密码,则不会向用户显示该密码 ...

  2. win10安装JDK cmd中可以运行java,但不能用javac,解决方案

    win10安装JDK cmd中可以运行java,但不能用javac,解决方案 参考文章: (1)win10安装JDK cmd中可以运行java,但不能用javac,解决方案 (2)https://ww ...

  3. JDK 8中的流驱动的集合功能

    这篇文章介绍了JDK 8的应用–引入了带有集合的 流 ,以更简洁地完成通常需要的与集合相关的功能. 在此过程中,将演示并简要说明使用Java Streams的几个关键方面. 请注意,尽管JDK 8 S ...

  4. jdk8中新增的日期处理类LocalDate,LocalTime,LocalDateTime,ZoneId,ZonedDateTime详解

    基本概念 时刻 所有计算机系统内部都用一个整数表示时刻,这个整数是距离格林尼治标准时间1970年1月1日0时0分0秒的毫秒数,可以理解时刻就是绝对时间,它与时区无关; 不同时区对同一时刻的解读,即年月 ...

  5. 使用 JDK 14 的 jpackage 打包 Java 应用

    Java应用的分发一直是一个比较麻烦的问题.这是因为Java应用的运行需要虚拟机的支持,仅有Java应用打包的JAR文件是不够的,目标机器还需要安装版本匹配的JDK或JRE.随着云原生和容器化技术的流 ...

  6. java console 交互_实例讲解java中Console类的用法

    java的Console类的使用方法及实例 java的Console类的使用方法及实例 JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备.如果你的Java程序要与Win ...

  7. JAVA中console方法怎么用,java的Console类的使用方法及实例

    java的Console类的使用方法及实例 JDK 6中提供了java.io.Console类专用来访问基于字符的控制台设备.如果你的Java程序要与Windows下的cmd或者Linux下的Term ...

  8. Java平台,标准版Oracle JDK 9中的新功能

    Java平台,标准版 Oracle JDK 9中的新增功能 版本9 E77563-05 2017年9月 JDK 9中的新功能概述 Java Platform,Standard Edition 9是一个 ...

  9. Java基础-->一篇讲全Java常用类(详细易懂,建议收藏)

    Java基础–>一篇讲全Java常用类(详细易懂,建议收藏) 文章目录 Java基础-->一篇讲全Java常用类(详细易懂,建议收藏) 1.字符串相关的类 String类 概述 创建Str ...

最新文章

  1. 自监督学习现状和未来
  2. BASE64 编码和解码
  3. 人类基因组注释包org.Hs.eg.db
  4. E - 秋实大哥与战争
  5. 重磅合集 | 31 篇技术文章,带你从零入门 K8s (留言赠书)
  6. 顺序表基本操作函数总结
  7. 70行Python代码,获取中国数据库大会(DTCC)全部PPT
  8. IO 流的操作基本规律
  9. Android studio 常用快捷键的使用
  10. 网络安全与管理精讲视频笔记10-Windows隧道模式IPSec配置实验演示
  11. win7原版iso镜像下载 windows7官方原版全系列(正式版、专业版、企业版、家庭版)下载
  12. AD18快速简单入门,画电路原理图以及PCB图
  13. c语言五子棋设计报告及源代码,课程设计模板C语言之五子棋附源代码.pdf
  14. 动态生成的html click事件,如何动态生成HTML时将jquery附加到click()事件?
  15. EFI Driver Model(上)
  16. urchin.js作用以及urchin.js注释
  17. CSS中的line-height,height与line-height
  18. IDEA 2020主菜单隐藏了
  19. MySQL之数据类型
  20. Android Audio混音实践篇

热门文章

  1. [Redis6]常用数据类型_Zset有序集合
  2. [C++11]智能指针简单介绍
  3. C++类型转换基本语法
  4. dfs递归实现组合型枚举
  5. 番茄时间有感之关于在疫情期间我与ACM不得不说的故事
  6. 哈工大威海计算机组成原理,哈工大威海计算机组成原理复习.pdf
  7. word List40
  8. 数据结构---Kruskal最小生成树
  9. linux6.5dns装什么,CentOS6.5安装DNS服务
  10. matlab中scrsz的意思,matlab图片c存储方法