java - 目录在 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);
}
}
解决方案
System.getProperty("user.dir")
返回应用程序启动时的当前目录,可能不是您想要的。如果您想指向您的主目录,因为那是您的pictures
目录所在的位置,请尝试使用System.getProperty("user.home")
.
推荐阅读
- docker - docker instance bridge 使用 9000 端口,使用 127.0.0.1:9000 可以连接但是 192.168.1.145:9000 连接失败,为什么?
- android - 如何将图像、视频和文件等 Android 应用相关数据备份到 Google 云端硬盘
- powershell - PackageManagement 模块加载显示在高级功能的详细输出中
- angularjs - npx 上限同步与 npx 上限复制
- spring - 如何在 Spring Boot 中初始化上下文参数?
- react-native - 使用反应导航的嵌套导航永久替换了 initialRouteName
- javascript - Jasmine 异步测试生成
- java - 如何使用 Java8 返回人员列表而不是字符串?
- python - 在 django 查询集上循环的行索引
- python - 训练 Faster R-CNN 期间的 NaN 损失,但在使用相同配置和数据时在 SSD 上没有损失