今天在测试ant的时候,写了如下代码:
HelloWorld.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();
}
}
Student.java//
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来读取,经过测试,没有问题:
使用BufferReader之后的HelloWorld.java//
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("小代码!");
}
}
使用ant运行效果:
run:
1001
小代码
23
男
[java] 输入学号:输入姓名:输入年龄:输入性别:student:
[java] Student [stuId=1001, stuName=小代码, stuAge=23, stuSex=男]
[java] Hello World!
[java] 小代码!
BUILD SUCCESSFUL
Total time: 12 seconds
使用java命令运行效果:
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才可以