一、动机
1.从控制台读取密码
package helloWorld;
import java.io.Console;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd = cons.readPassword("Password: ");
}
}
2.原因
Java.io.Console 只能用在标准输入、输出流未被重定向的原始控制台中使用
通俗点说:在 Eclipse 或者其他 IDE 的控制台是用不了的
二、解决办法 :安装插件EasyShell
①Help->Eclipse Marketplace
②Find中搜索easyshell,回车后点击"Install"
三、完成EasyShell安装后,继续按如下步骤配置
①Windows->Preference
②EasyShell->Menu,点击红箭头所指的“Add…”
③Select选择Open-PowerShell(Plugin),点击OK
④选中OpenPowerShell,通过红箭头所指的“Up”移至顶部,点Apply and Close
四、为Easy Shell修改快捷键
①Windows->Preference
②按如下图操作
初始是Alt + O,改为Ctrl + F12(Ctrl + F11是Eclipse,run的快捷键)
五、测试
①对xxx.java(注释掉package xxx;),按快捷键Ctrl + F12,默认0:Open PowerShell Here, 回车即可
②成功解决“一、”提到的问题
PS : 配置Eclipse :Eclipse中使用Windows powershell(过时的方法,不用看了)
①Run->External Tools->External Tools Configurations…
②双击Program, 得到New_configuration
③按如下进行配置:
①powershell.exe的路径,一般都是C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe;或者用Everything进行查询
②Working Directory
由于运行java程序,需要先用javac xxx.java 将java源文件编译成.class字节码文件;然后java xxx 由java虚拟机对字节码进行解释运行。
虽然eclipse把源程序放在src中,把生成的.class放在bin中,但是命令行下,生成的.class与源程序在同一个目录里。
xxx.java所在的文件夹(用“Browse Workspace…”来选)
在run之前,选择“Common”,确认红色箭头所指勾选上了(一般默认是勾选上的)
三、存在的问题及解决
1.Eclipse的package xxx(eg : package helloWorld)会导致如下问题
2.解决办法:注释掉package xxx
但这会导致Eclipse报错…也就是说,Eclipse中使用Windows powershell很麻烦…(待寻找更好的方法)