【问题标题】:How do I get user input when I run my jar file from command prompt?从命令提示符运行 jar 文件时如何获取用户输入?
【发布时间】:2016-06-02 03:54:46
【问题描述】:

在 Netbeans 中,我的程序运行良好。它使用 Scanner 获取用户输入。

但是,当我在命令提示符下运行 jar 文件时,它会跳过所有用户输入并运行程序。为什么会这样,我该如何纠正?

例子:

public static void main(String[] args) 
{
System.out.print("How many teachers need an assignment (two classes will be assigned to each teacher)? ");
        numTeachers = input.next();
}

它甚至从不打印第一行

【问题讨论】:

  • 如果没有代码,我们只能猜测可能导致此问题的众多问题之一。如需更多帮助,请发布最小、完整和可验证的示例:stackoverflow.com/help/mcve
  • 好吧,看起来你的 jar 文件启动不正确。你如何运行你的程序?您是否先打开控制台,然后从控制台内部启动 jar?

标签: java


【解决方案1】:

因为第一行从不打印,我想你会发现你的问题是由你运行程序的方式引起的,因为如果它在 netbeans 中工作,那是唯一的区别。

首先在你的程序所在的文件夹中打开一个控制台窗口,然后像往常一样运行 jar 文件:

java -jar myapplication.jar

如果你只是双击你的 jar 文件,它会立即运行,因为没有控制台,它会立即关闭。使用控制台的 Java 程序也必须从控制台/命令提示符/终端运行。

编辑:以防万一,值得仔细检查您如何设置扫描仪。它应该类似于以下示例:https://stackoverflow.com/a/17691245/1270000

     public static void main(String args[]){

            Scanner scanner = new Scanner(System.in);
            int eid,sid;
            String ename;
            System.out.println("Enter Employeeid:");
            eid=scanner.nextInt();
            scanner.nextLine(); //This is needed to pick up the new line
            System.out.println("Enter EmployeeName:");
            ename=scanner.nextLine();
            System.out.println("Enter SupervisiorId:");
            sid=(scanner.nextInt());
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2013-02-21
    • 2017-03-12
    • 2011-08-12
    • 2015-03-28
    • 1970-01-01
    相关资源
    最近更新 更多