0

我遇到了一个奇怪的问题。所以我使用 BlueJ 作为我的代码编辑器,它可以很好地运行我的代码。当我创建一个 jar 文件并运行它时,程序会抛出"Exception in "main" java.util.NoSuchElementException: No Line found"

我在这里有两个问题:

  1. 为什么我的代码在 BlueJ 中运行得很好,但在其他运行时环境或编辑器(例如 Visual Studio Code)中却没有?

  2. 还有为什么它完全失败了?

为了让每个人都知道,我压缩了代码并删掉了一些部分。问题仍然存在。

import java.util.*;
import java.util.Scanner;
import java.io.*;
/**
* Write a description of class mainBody here.
*
* @author (Brayden Anderson)
* @version (a version number or a date) 
*/
public class mainBody{
    public static ArrayList<String> Messages = new ArrayList<String>();
    public static ArrayList<String> changeLog = new ArrayList<String>();
    /**
     * mainBody Constructor
     * Setup Menu
     */
    public mainBody(){
        Scanner scan = new Scanner(System.in); 
        System.out.println("Welcome to Solar!");
        System.out.println("========================================");
        System.out.println("1. Start Setup");
        System.out.println("2. Quit Program");
        System.out.println("Console: ");
        System.out.println("[System]: Please Start Setup to Proceed");
        String selection = scan.nextLine();
        scan.close();
        if(selection.equals("1")){
            System.out.println("Starting Setup");
        }else if(selection.equals("2")){
            System.exit(1);
        }else{
            new mainBody();
        }
    }
    /**
     * Method main
     *
     * @param args A parameter
     */
    public static void main(String[] args) {
        new mainBody();
    }
} 

在 powershell/CMD 中输出:

欢迎来到太阳能!

  1. 开始安装
  2. 退出程序

控制台:[系统]:请启动安装程序以继续 1 <--用户输入 [系统]:启动安装程序!... [系统]:您想使用驱动器“C”进行安装 [系统]:是/否?[警告]:设置停止,线程“主”java.util.NoSuchElementException 中等待用户响应异常:在 Setup.autoSearchForDir(Setup .java:309) 在 Setup.startSetup(Setup.java:24) 在 mainBody.(mainBody.java:32) 在 mainBody.main(mainBody.java:489) PS C:\Users\brayd\desktop>

Bluej 中的输出:

欢迎来到太阳能!

  1. 开始安装
  2. 退出程序控制台:[系统]:请启动安装程序以继续 1 <-- 用户输入 [系统]:正在启动安装程序!... [系统]:您是否要使用驱动器“C”进行安装 [系统]:Y/ ñ?[警告]:安装程序已停止,等待用户响应 [用户]:[警告]:安装程序已恢复 [系统错误]:无效选项,正在重新启动安装程序... [系统]:您是否要使用驱动器“C”进行安装 [系统]:是/否?[警告]:安装程序停止,等待用户响应 y [用户]:y [警告]:安装程序恢复 [系统]:请输入您要安装系统文件的目录,您不需要包含斜杠“” [ System]:示例“\Users* User *\Documents” [System]:键入“Cancel”取消并重新开始,键入“Back”删除最后一个目录
4

2 回答 2

0

首先不要像这里提到的那样关闭扫描仪。

其次,如果您没有以这种方式进行配置,那么您正在使用的 BlueJ 会神奇地提供所需的依赖项。其余的工具并没有做到这一点。在任何情况下,您都不应该继续进行,这就是重点。

于 2021-03-05T15:35:51.697 回答
0

所以谢谢大家的帮助。问题是扫描仪的关闭。我删除了所有关闭并创建了一个类来处理所有扫描仪的东西。然后我将所有输入实例路由到新类。所以谢谢!

于 2021-03-05T19:29:42.103 回答