System.out.print 没有按预期工作
System.out.print did not work as intended
我目前正在 java 做一个学校项目(我使用 NetBeans),我遇到了这个问题。我做了一些在线研究,但到目前为止还没有运气。这是我的代码片段:
问题是每当我单击 运行 文件时,控制台仅在 help() 方法中显示消息,而不显示此消息“命令 [c/r/u/d/x]”。该消息仅在输入任何可能的选项后显示。任何帮助将不胜感激。
public static void main(String[] args) throws ClassNotFoundException, SQLException {
new TestDB().menu();
}
private DBConnector connector;
private Connection conn;
private DBManager manager;
public TestDB() throws ClassNotFoundException, SQLException {
connector = new DBConnector(); conn = connector.openConnection();
manager = new DBManager(conn);
}
private void testCreate() throws SQLException {
System.out.println("Adding customer to the database: ");
manager.addCustomer(read("Email"),read("Password"),read("First
Name"),read("Last Name"),read("Phone
Num"),read("Address"),read("DOB"));
System.out.println("Customer added successfully ");
}
private String read(String prompt) {
System.out.print(prompt + ": ");
System.out.flush();
return in.nextLine();
}
private String read(int prompt) {
System.out.print(prompt + ": ");
System.out.flush();
return in.nextLine();
}
private void menu() throws SQLException {
char c;
help();
while ((c = read("Command [c/r/u/d/f/x]").charAt(0)) != 'x') {
switch (c) {
case 'c':
testCreate();
break;
case 'r':
testFind();
break;
case 'u':
testUpdate();
break;
case 'd':
testDelete();
break;
default:
help();
break;
}
}
}
private void help() {
System.out.println("Database Operations: \n"
+ "c = Create User \n"
+ "r = Find User \n"
+ "u = Update User \n"
+ "d = Delete User \n");
}
我认为您必须输入所有用户输入的“电子邮件”、“密码”、“名字”、“姓氏”
Name","Phone Num","Address","DOB" 输入每个值后按回车键。一旦你输入所有值,剩余的代码将被执行。
问题已解决,我只是在 read() 方法中将 print() 替换为 println()。这个问题似乎属于maven和ant项目之间的一些不同。我在 ant 中尝试了相同的代码,它执行得很好。
新更新:
这个网站帮助我:https://github.com/mojohaus/exec-maven-plugin/issues/159。
基本上,您只需将目标从 exec:exec 更改为 exec:java
See detail here
我目前正在 java 做一个学校项目(我使用 NetBeans),我遇到了这个问题。我做了一些在线研究,但到目前为止还没有运气。这是我的代码片段: 问题是每当我单击 运行 文件时,控制台仅在 help() 方法中显示消息,而不显示此消息“命令 [c/r/u/d/x]”。该消息仅在输入任何可能的选项后显示。任何帮助将不胜感激。
public static void main(String[] args) throws ClassNotFoundException, SQLException {
new TestDB().menu();
}
private DBConnector connector;
private Connection conn;
private DBManager manager;
public TestDB() throws ClassNotFoundException, SQLException {
connector = new DBConnector(); conn = connector.openConnection();
manager = new DBManager(conn);
}
private void testCreate() throws SQLException {
System.out.println("Adding customer to the database: ");
manager.addCustomer(read("Email"),read("Password"),read("First
Name"),read("Last Name"),read("Phone
Num"),read("Address"),read("DOB"));
System.out.println("Customer added successfully ");
}
private String read(String prompt) {
System.out.print(prompt + ": ");
System.out.flush();
return in.nextLine();
}
private String read(int prompt) {
System.out.print(prompt + ": ");
System.out.flush();
return in.nextLine();
}
private void menu() throws SQLException {
char c;
help();
while ((c = read("Command [c/r/u/d/f/x]").charAt(0)) != 'x') {
switch (c) {
case 'c':
testCreate();
break;
case 'r':
testFind();
break;
case 'u':
testUpdate();
break;
case 'd':
testDelete();
break;
default:
help();
break;
}
}
}
private void help() {
System.out.println("Database Operations: \n"
+ "c = Create User \n"
+ "r = Find User \n"
+ "u = Update User \n"
+ "d = Delete User \n");
}
我认为您必须输入所有用户输入的“电子邮件”、“密码”、“名字”、“姓氏” Name","Phone Num","Address","DOB" 输入每个值后按回车键。一旦你输入所有值,剩余的代码将被执行。
问题已解决,我只是在 read() 方法中将 print() 替换为 println()。这个问题似乎属于maven和ant项目之间的一些不同。我在 ant 中尝试了相同的代码,它执行得很好。
新更新: 这个网站帮助我:https://github.com/mojohaus/exec-maven-plugin/issues/159。 基本上,您只需将目标从 exec:exec 更改为 exec:java
See detail here