我遇到了一个奇怪的问题。所以我使用 BlueJ 作为我的代码编辑器,它可以很好地运行我的代码。当我创建一个 jar 文件并运行它时,程序会抛出"Exception in "main" java.util.NoSuchElementException: No Line found"。
我在这里有两个问题:
为什么我的代码在 BlueJ 中运行得很好,但在其他运行时环境或编辑器(例如 Visual Studio Code)中却没有?
还有为什么它完全失败了?
为了让每个人都知道,我压缩了代码并删掉了一些部分。问题仍然存在。
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 <--用户输入 [系统]:启动安装程序!... [系统]:您想使用驱动器“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 <-- 用户输入 [系统]:正在启动安装程序!... [系统]:您是否要使用驱动器“C”进行安装 [系统]:Y/ ñ?[警告]:安装程序已停止,等待用户响应 [用户]:[警告]:安装程序已恢复 [系统错误]:无效选项,正在重新启动安装程序... [系统]:您是否要使用驱动器“C”进行安装 [系统]:是/否?[警告]:安装程序停止,等待用户响应 y [用户]:y [警告]:安装程序恢复 [系统]:请输入您要安装系统文件的目录,您不需要包含斜杠“” [ System]:示例“\Users* User *\Documents” [System]:键入“Cancel”取消并重新开始,键入“Back”删除最后一个目录