`
SimonChan
  • 浏览: 7987 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
最近访客 更多访客>>
社区版块
存档分类
最新评论

JDK 6 新特性 - console:基于控制台的Java程序

阅读更多

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

TestConsole.java 代码:

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

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

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

Console is unavailable.



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

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

$ java com.simon.testjdk6.console.TestConsole
Enter user:Simon
Enter passowrd:
User is:Simon
Password is:12345


我们可以看到:输入密码时,控制台时不显示我们所输入的密码字符。但是程序可以得到并输出的密码字符串。

分享到:
评论

相关推荐

    jvm-mon:基于控制台的JVM监视工具

    新版本发行: 用Go重写单个可执行文件可以监视Java 8及更高版本上的应用程序不需要现有的JDK 这个怎么运作: jvm-mon可执行文件与Java代理jar捆绑在一起启动时,它将代理提取到临时目录它附加到您要监视的JVM 将代理...

    Mimerme-s-Util-Console:用Java编写的实用程序控制台,可轻松运行和下载控制台模块

    用Java编写的实用程序控制台,可轻松运行和下载控制台模块 #特征 在Windows上运行(可以修改/计划用于多平台) 对* NIX系统的小支持 管理类似于NPM或RubyGems的Java应用程序模块 通用,可以配置为运行使用批处理...

    picketlink-console:基于GWT的项目PicketLink控制台

    基本上,这是一个基于AS7控制台的体系结构和原理的GWT应用程序,提供用于管理PicketLink AS7子系统的UI。 有关更多信息,请参见。 如何建造 先决条件: Apache Maven 3 JDK 1.6以上 要构建控制台,请执行以下...

    Java_Console_Application_TicTacToe:在控制台中播放TicTacToe

    该游戏是一个Java控制台应用程序。 如果您要开始游戏,请使用“ start.bat”文件。 使用以下方法创建应用程序: IDE Eclipse Java JDK 15.01 用户要求: Java JRE / JDK 14或更高版本 Java环境变量定律 为此,...

    JDK 6.2.3文文档.rar

    JDK6新特性目录导航: Desktop类和SystemTray类 JAXB2实现对象与XML之间的映射 StAX Compiler API 轻量级 Http Server API 插入式注解处理API(Pluggable Annotation Processing API) 用Console开发控制台程序 对...

    console-jdbc-crud:console-jdbc-crud

    有关ConsoleJDBC项目的信息使用Java JDK7开发的项目-未使用任何框架数据库MYSQL(JAR文件内部和项目文件夹中已经存在Mysql连接器库) 数据库初始脚本:项目文件夹中的文件DATABASE.SQL,也通过电子邮件分隔发送运行...

    可以运行的rocketmq控制台,适用于jdk8+版本

    在站内找的所有的版本,都运行失败了报nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException这个错误 这个版本是解决了这个问题之后的可以运行的版本,希望大家喜欢~~~ 有问题...

    rocketmq管理界面

    RocketMQ-Console是RocketMQ项目的扩展插件,是一个图形化管理控制台,提供Broker集群状态查看,Topic管理,Producer、Consumer状态展示,消息查询等常用功能,这个功能在安装好RocketMQ后需要额外单独安装、运行 ...

    CFT文件传输工具-jeffreyningsoftware-CFT

    使用cft-console控制台开启progress startprogress sample-server startprogress sample-client 使用cft-console控制台还可以: 关闭服务:stopprogress <progressname> 强制关闭服务:killprogress <progressname>...

    JAVA6新特性介绍.zip

    jdk1.6新特性 1.Desktop类和SystemTray类 2.使用JAXB2来实现对象与XML之间的映射 3.StAX 4.使用Compiler API 5.轻量级Http Server API 6.插入式注解处理API(Pluggable Annotation Processing API) 7.用Console开发...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    JDK_API_1_6

    Console 此类包含多个方法,可访问与当前 Java 虚拟机关联的基于字符的控制台设备(如果有)。 DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。 DataOutputStream...

    Java三国杀游戏控制台版本.zip

    根据三国杀游戏规则设计开发的java小游戏,console输出信息限单人AI对战,需要jdk1.6以上,eclipse或idea等开发工具,环境运行自动下载lib

    java websocket 华视身份证cvr100u,cvr100uc,支持谷歌,火狐浏览器

    公司有个物流项目是要bs端连接身份证读卡器,显示姓名和身份证号,设备为华视cvr-...step2: 布暑到tomcat访问index.html,点击connect连接后台读取姓名和身份证号的接口,为websocket长连接,打开console控制台,读取身

    weblogic集群部署文档.docx

    6.选择模式 选择本地已安装的jdk -->选择下一步 7.选择管理服务器,选择受管理服务器,集群和计算机--->点击下一步 8.设置Listen address 为本机ip , 端口 7001 -->点击下一步 9.填写各个受管理服务器的详细信息...

    Console_chat

    Console_chat Java版本:JDK 10.0.1如何构建和运行jar文件:Maven: 从下载最新版本的Maven 将档案解压缩到所需的任何文件夹Windows:在Windows环境中添加M2_HOME,并将其指向您的Maven文件夹。 Linux:将“导出M2_...

    browserconsole:多浏览器 JS 控制台

    浏览器控制台是一个 应用程序,它允许您在多个浏览器中测试 JavaScript 片段,并将结果实时返回到其中一个浏览器。 这可以让您轻松地同时在不同浏览器中测试一些奇怪的浏览器怪癖。 演示 在亲自尝试一下。 在多个...

    JAVA 范例大全 光盘 资源

    实例193 利用console控制台运行类中的汉字处理方案 624 实例194 Servlet中的汉字处理方案 625 实例195 JSP中的汉字处理方案 627 实例196 Tomcat连接池的配置 629 实例197 MySQL数据库的分页形式 633 实例198 ...

    Java基础单词

    Java编译程序 38. println n. 换行打印(Java语言中的命令) 39. edit ['edɪt] vt. 编辑;校订; 40. standard ['stændəd] n. 标准 41. edition [ɪ'dɪʃ(ə)n] n. 版本 42. micro ['maɪkrəʊ] adj....

    Activiti的安装详细过程

    C:\mash_activiti-5.6\apps\h2\h2_console.start.bat ,控制台 web 访问开 放端口为 8082 ) 2. 再启动 H2 数据库访问服务 ( C:\mash_activiti-5.6\apps\h2\h2.start.bat , H2 程序访问开放端口为 9092 ) ...

Global site tag (gtag.js) - Google Analytics