使用 Maven 在 java 中找不到文件异常

file not found exception in java with maven

我正在尝试从目录中读取日志文件:src/main/resources/example.log 该文件已经存在,但它抛出文件未找到异常。 这是我的代码:

public class Main {
    
    public static void main(String[] args) throws FileNotFoundException {

        //logfilepath = "src\main\resources\example.log";
        Input input=new CommandLineInput();
        Textfilehandler textfilehandler = new Textfilehandler();
        Log logvariables=new Logvariables();
        Firstreadinglog firstreadinglog = new Firstreadinglog(textfilehandler,logvariables);
        Logfilehandler logfilehandler = null;
        Morereadinglog morereadinglog = new Morereadinglog(textfilehandler,logvariables);

        LogAnalyzerApp app=new LogAnalyzerApp(textfilehandler,firstreadinglog,morereadinglog,input);
        app.show();
    }
}

错误信息是:

java.io.FileNotFoundException: /example.log (No such file or directory) Exception in thread "main" java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:373) at java.base/java.util.ArrayList.get(ArrayList.java:427) at kln.se.ass2.logfile.Morereadinglog.getcurrentlogstates(Morereadinglog.java:50) at kln.se.ass2.LogAnalyzerApp.show(LogAnalyzerApp.java:35) at kln.se.ass2.Main.main(Main.java:29)

我输入的文件路径如下: src\main\resources\example.log

你可以尝试使用自动设置当前工作目录的Maven资源文件的完整路径,然后你可以只使用:

File resourcesDirectory = new File("src/main/resources/example.log");
    
String logfilepath = resourcesDirectory.getAbsolutePath();

问题是我使用 Linux OS。我输入了带有反斜杠的目录,如 Windows。现在我明白了。谢谢。