我有一个java jar,需要接受大约3个参数,但我想将它们作为Q& A类型传递,如下所示: 第一步运行java jar
java -jar myTest.java
第二步提问并等待答案:
Hi, how old are you?
我输入接受它的答案,然后问第二个问题:
nice! what is your name?
键入我的第二个答案,然后输入第三个问题,依此类推。我怎么做到这一点?我知道我可以将参数传递给main,但我发现当我第一次运行jar时我必须将它们全部传递给我,而不是像我正在寻找的那样。 有任何想法吗? 谢谢!
答案 0 :(得分:0)
似乎你在混淆概念。
命令行参数是那些你看作主要方法的String [] args参数的字符串!
但您希望用户提供更多"更多"输入到您的应用程序,典型的方法是从" stdin" (请参阅here了解如何操作)。
这两者根本不同;你应该首先澄清一下你真正打算使用哪一个(给出你的例子......可能是" stdin"选项)。
答案 1 :(得分:0)
与应用程序交互的方式取决于应用程序本身的逻辑......
如果您需要从起点提供应用程序所需的参数,那么您在运行应用程序后立即提供这些参数
java -jar myTest.java
所有这些参数都传递给public static void main方法中的string []参数...
在你的情况下,(如果我得到了正确的问题)你将需要来自用户的更多信息,这是在运行时给出的......所以你需要另一种方法来做到这一点,像Scanner类允许你读取输入来自终端......
使用Scanner类并从控制台读取用户输入..
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("What is your name?");
String input = sc.nextLine();
System.out.println("Hi, " + input + ", where are you from");
input = sc.nextLine();
System.out.println("Ohh, " + input + " is nice place I guess!");
System.out.println("and how old are you??");
...
}
答案 2 :(得分:0)
尝试阅读Java IO教程:
https://docs.oracle.com/javase/tutorial/essential/io/cl.html