我有一个Spring Boot Maven多模块项目,在该项目中,我try 在我的代码中使用Files.createDirecters方法创建一个目录.该项目的 struct 如下:

-GlobalProject :                                                                                                                                                                                                      
    CommonProject:                                                                                                                                                                                       
    WebParentPrject:
         backendPorject:                                                                                                                                                   
         frontendProoject: 

我想要在backendPorject目录中创建一个名为USER-IMAGE的目录.以下代码(在Backendproject中)在Eclipse中运行良好,但在IntelliJ中的行为不符合预期:

public class FileUploadUtil {

    public static void saveFile(String uploadDir, String fileName, MultipartFile multipartFile) throws IOException {
        Path uploadPath = Paths.get(uploadDir);
        if(!Files.exists(uploadPath))
        {
            Path directories = Files.createDirectories(uploadPath);
            System.out.println(directories);
        }
        try (InputStream inputStream = multipartFile.getInputStream()){
            Path filePath = uploadPath.resolve(fileName);
            Files.copy(inputStream,filePath, StandardCopyOption.REPLACE_EXISTING);
        }catch (IOException exception){
            throw new IOException("Could not save file : "+fileName,exception);
        }
    }

在Eclipse中,该目录是在BackendProject目录中创建的,但在IntelliJ中,该目录是在整个项目(MyProject)的根目录中创建的.我希望在两个IDE的BackendProject目录中创建该目录.

有没有人能帮我解释一下为什么在Eclipse和IntelliJ中行为不同,以及我如何修改代码以确保在两种IDE中的行为一致?

推荐答案

文件操作相对于当前工作目录工作,您可以在IntelliJ IDEA运行配置中设置该目录.

Spring Boot示例:

Boot working directory

Java相关问答推荐

在数组中使用意想不到的结果

将状态栏和导航栏设置为白色,带有深色文本

在FML中删除关键帧动画

如何为具有多对多关系的实体的给定SQL查询构建JPA规范?

如何在SystemiccationRetryListenerSupport中获得类级别的spring retryable annotation中指定的标签?

同时运行JUnit测试和Selenium/Cucumber测试时出现问题

为什么我要创建一个单独的互斥体/锁对象?

Java FX中的河内之塔游戏-在游戏完全解决之前什么都不会显示

在bash中将数组作为Java程序的参数传递

在运行MVN测试时,为什么构建失败,并显示了java.lang.ClassNotFoundException:java.net.http.HttpResponse?

内存中的H2修剪尾随空格

Chunk(Int)已弃用并标记为要删除

Helidon 4和Http API

当Volatile关键字真的是必要的时候?

try 从REST API返回对象列表时出错

使用htmlunit和java单击按钮

当b是一个字节并且在Java中值为-1时,为什么b>;>;>;1总是等于-1?

为了安全起见,有必要复制一份 list 吗?

在Spring Boot中使用咖啡因进行缓存

Intellij 2023 IDE:始终在顶部显示菜单栏