为什么java scanner没有';从cmd调用jar时无法工作?
我试图从myFile.txt文件中读取一些数据。我使用的代码如下所示:为什么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
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");