首页 > 解决方案 > 目录在 Intellij 中有效,但在 CMD 和 .jar 中无效

问题描述

我在这部分代码中有问题。从文件夹中,我正在加载所有图像,然后将其作为对象的一部分保存到这些对象的列表中。

当我在 Intellij 中运行它时,一切正常。我打印 isDirectory() 只是因为这个问题。在 intellij 中,它返回 true。

但是当我尝试通过jar在cmd中运行时,就出现了问题。方法 isDirectory() 返回 false 并且 listFiles() 抛出 NullPointerException。

我还尝试手动将整个路径保存在字符串目录中,但没有任何改变。在 intellij 中,它运行完美,并且在 CMD 中带有 jar 的问题。问题确实在这。在我开始使用这些功能之前,Jar 工作得很好。谢谢你的任何想法。

 private void loadAllExercises(){
        public String directory = System.getProperty("user.dir") + "\\pictures\\";
        File directory = new File(directory);

        System.out.println(directory.isDirectory());

        for (File file : directory.listFiles()) {
            loadExercise(file);
            }
        }

    private void loadExercise(File file){
        if(file.getName().toLowerCase().endsWith(".jpg")) {
            Exercise exercise = new Exercise(file.getName());
            this.allExercises.add(exercise);
        }
    }

标签: javacmdjarpath

解决方案


System.getProperty("user.dir")返回应用程序启动时的当前目录,可能不是您想要的。如果您想指向您的主目录,因为那是您的pictures目录所在的位置,请尝试使用System.getProperty("user.home").


推荐阅读