为什么java scanner没有';从cmd调用jar时无法工作?

为什么java scanner没有';从cmd调用jar时无法工作?,java,file-io,jar,cmd,java.util.scanner,Java,File Io,Jar,Cmd,Java.util.scanner,我试图从myFile.txt文件中读取一些数据。我使用的代码如下所示: try (Scanner scanner = new Scanner(new File("myFile.txt"))) { System.out.println("Start"); while (scanner.hasNextLine()) { System.out.println("Inside"); String line = scann

我试图从myFile.txt文件中读取一些数据。我使用的代码如下所示:

try (Scanner scanner = new Scanner(new File("myFile.txt"))) {
        System.out.println("Start");

        while (scanner.hasNextLine()) {
            System.out.println("Inside");

            String line = scanner.nextLine();

            String[] attribute = line.split(",");

            String id = attribute[0];
            String firstName = attribute[1];
            String lastName = attribute[2];

            System.out.println(id + " " + firstName+ " " + lastName);
        }
        System.out.println("The end");
    }
当我从IDE运行这段代码时,它工作得很好。但是当我从cmd窗口运行jar文件时,它不起作用。仅显示“开始”和“结束” 在cmd屏幕上。因此,scanner.hasNextLine()始终为false。

从中,文件为:

文件和目录路径名的抽象表示

它并不专门表示现有文件,只表示路径名

这里的问题是,您尝试打开的文件没有打开。如果您的文件打包在JAR中,您可以尝试通过ClassLoader方法访问它:


从jar运行文本文件时,文本文件在哪里?与我的项目jar文件位于同一目标中。它是否在启动程序的目录中?i、 e.如果您在windows上键入
ls
(或
dir
),是否看到列出的此文件?我认为他的文件位于正确的位置,因为没有“FileNotFoundException”。请尝试
System.err.println(新文件(“myFile.txt”).getAbsolutePath())
之前尝试
。不,我的文件没有打包在JAR中。见我最后的评论。
getClass().getClassLoader().getResource("myFile.txt");