今天在测试ant的时候,写了以下代码: java
package com.laolang.hello; import java.util.Scanner; import com.laolang.stu.Student; public class HelloWorld { public static void main(String[] args) { Scanner input = new Scanner( System.in ); Student stu = null; int id = 0; String name = null; int age = 0; String sex = null; System.out.print("输入学号:"); id = Integer.parseInt( input.nextLine() ); System.out.print("输入姓名:"); name = input.nextLine(); System.out.print("输入年龄:"); age = Integer.parseInt( input.nextLine() ); System.out.print("输入性别:"); sex = input.next(); stu = new Student( id, name, age, sex ); System.out.println("student:"); System.out.println(stu); System.out.println("Hello World!"); System.out.println("小代码!"); input.close(); } }
package com.laolang.stu; public class Student { public Student() { super(); } public Student(int stuId, String stuName, int stuAge, String stuSex) { super(); this.stuId = stuId; this.stuName = stuName; this.stuAge = stuAge; this.stuSex = stuSex; } @Override public String toString() { return "Student [stuId=" + stuId + ", stuName=" + stuName + ", stuAge=" + stuAge + ", stuSex=" + stuSex + "]"; } public int getStuId() { return stuId; } public void setStuId(int stuId) { this.stuId = stuId; } public String getStuName() { return stuName; } public void setStuName(String stuName) { this.stuName = stuName; } public int getStuAge() { return stuAge; } public void setStuAge(int stuAge) { this.stuAge = stuAge; } public String getStuSex() { return stuSex; } public void setStuSex(String stuSex) { this.stuSex = stuSex; } private int stuId; private String stuName; private int stuAge; private String stuSex; }
run: [java] 输入学号: 1001 [java] 输入姓名: [java] 输入年龄: tian [java] Exception in thread "main" java.util.InputMismatchException [java] at java.util.Scanner.throwFor(Scanner.java:909) [java] at java.util.Scanner.next(Scanner.java:1530) [java] at java.util.Scanner.nextInt(Scanner.java:2160) [java] at java.util.Scanner.nextInt(Scanner.java:2119) [java] at com.laolang.hello.HelloWorld.main(HelloWorld.java:23) BUILD FAILED因而百度之,在CSDN上看到了能够用BufferReader来读取,通过测试,没有问题:
package com.laolang.hello; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import com.laolang.stu.Student; public class HelloWorld { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader( System.in)); Student stu = null; int id = 0; String name = null; int age = 0; String sex = null; try { System.out.print("输入学号:"); id = Integer.parseInt(br.readLine()); System.out.print("输入姓名:"); name = br.readLine(); System.out.print("输入年龄:"); age = Integer.parseInt(br.readLine()); System.out.print("输入性别:"); sex = br.readLine(); } catch (NumberFormatException | IOException e) { e.printStackTrace(); } stu = new Student(id, name, age, sex); System.out.println("student:"); System.out.println(stu); System.out.println("Hello World!"); System.out.println("小代码!"); } }
run: 1001 小代码 23 男 [java] 输入学号:输入姓名:输入年龄:输入性别:student: [java] Student [stuId=1001, stuName=小代码, stuAge=23, stuSex=男] [java] Hello World! [java] 小代码! BUILD SUCCESSFUL Total time: 12 seconds
laolang@laolang:~/code/ant/li/stu/classes$ java com.laolang.hello.HelloWorld 输入学号:1001 输入姓名:tianya 输入年龄:23 输入性别:nan student: Student [stuId=1001, stuName=tianya, stuAge=23, stuSex=nan] Hello World! 小代码!
使用ant运行的时候虽然能够正常输入,可是没有输入,而后使用java命令就没有问题,看来仍是应该在ant中执行shell下的 java.com.xx.xx.XX才能够 shell