Java 这个程序的未知源是什么意思?我如何修复它?

Java 这个程序的未知源是什么意思?我如何修复它?,java,java.util.scanner,Java,Java.util.scanner,我一直试图从工作簿中复制一个程序,试图使用磁盘扫描仪,但我遇到了一个问题,在第14-17行(磁盘扫描仪。下一行)中,我不断收到错误“未知源” 代码如下: public class SomeClassName { public static void main(String args[]) throws IOException { Scanner diskScanner = new Scanner(new File("C:\\Users\\student\\Workspace\

我一直试图从工作簿中复制一个程序,试图使用磁盘扫描仪,但我遇到了一个问题,在第14-17行(磁盘扫描仪。下一行)中,我不断收到错误“未知源”

代码如下:

public class SomeClassName {
    public static void main(String args[]) throws IOException {
      Scanner diskScanner = new Scanner(new File("C:\\Users\\student\\Workspace\\TextFiles\\Test.txt"));

      diskScanner.nextInt();
      diskScanner.nextDouble();
      diskScanner.next();
      diskScanner.nextLine();
    }
}
这就是我在控制台中遇到的错误:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at SomeClassName.main(SomeClassName.java:14)
我曾尝试遵循Eclipse的所有建议,但都没有奏效。我有什么遗漏吗


编辑:发布了错误错误,修复了

您可能正在使用JRE而不是JDK。运行时无法告诉您出了什么问题,您需要开发工具包。我想已经有一个类似的错误,请标记为重复,如果是这样,我在手机现在


编辑:您很可能存在filenotfound异常。请确保路径正确。Eclipse确实使它的文件夹通常是小写的,而不是“工作区”

您可能正在使用JRE而不是JDK。运行时无法告诉您出了什么问题,您需要开发工具包。我想已经有一个类似的错误,请标记为重复,如果是这样,我在手机现在


编辑:您很可能存在filenotfound异常。请确保路径正确。Eclipse确实使它的文件夹通常是小写的,而不是“工作区”

当扫描器没有更多数据可读取时,或者数据格式错误时,通常会出现此错误。 检查您的文件,查看所有数据是否存在以及是否符合您正在读取的格式。 使用扫描仪,在实际读取之前,您需要检查是否有带有
hasNextLine()
的下一行或带有
hasNextInt()的下一个int。
像这样的

while(sc.hasNextLine()){
    str=sc.nextLine();
    //...
}
if(disKScanner.hasNextInt()){
diskScanner.nextInt();
}
  // similarly do this check for all reads then only read it
看起来在您的情况下,它无法获取下一个int,因为它不存在。 请再次更改数据并执行类似操作

while(sc.hasNextLine()){
    str=sc.nextLine();
    //...
}
if(disKScanner.hasNextInt()){
diskScanner.nextInt();
}
  // similarly do this check for all reads then only read it

当扫描仪
没有更多数据可读取或数据格式错误时,通常会出现此错误。 检查您的文件,查看所有数据是否存在以及是否符合您正在读取的格式。 使用扫描仪,在实际读取之前,您需要检查是否有带有
hasNextLine()
的下一行或带有
hasNextInt()的下一个int。
像这样的

while(sc.hasNextLine()){
    str=sc.nextLine();
    //...
}
if(disKScanner.hasNextInt()){
diskScanner.nextInt();
}
  // similarly do this check for all reads then only read it
看起来在您的情况下,它无法获取下一个int,因为它不存在。 请再次更改数据并执行类似操作

while(sc.hasNextLine()){
    str=sc.nextLine();
    //...
}
if(disKScanner.hasNextInt()){
diskScanner.nextInt();
}
  // similarly do this check for all reads then only read it

你能把真正的错误放在你的文本中吗?你有没有在eclipse中安装和配置jre源代码?你正在从文件中读取,该文件是否有任何数据?你能把真正的错误放在你的文本中吗?你有没有在eclipse中安装和配置jre源代码?你正在从文件中读取,该文件有任何数据吗?谢谢你的建议,我尝试了这两种方法,但都没有更改错误消息。编辑:文件夹路径是正确的,但我把它移到了我的电脑上,并重写了路径,但没有效果。谢谢你的建议,我尝试了这两种方法,但都没有改变错误消息。编辑:文件夹路径是正确的,但我把它移到了我的计算机上,并重写了路径,但它没有任何效果。就像任何可写或流一样,在java中,尤其是在java中,你应该首先检查你是否真的有任何输入。我查看了数据,发现我忘了在文件中放入任何内容。错误源于文档中缺少数据,而不是任何编程错误。感谢您提供的有用建议。就像任何iterable或stream一样,在java中,尤其是在java中,您应该首先检查是否有任何输入。我查看了数据,发现我忘记将任何内容放入文件中。错误源于文档中缺少数据,而不是任何编程错误。谢谢你的建议。