首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我缺少包中的最后一级目录时,为什么我可以编译它?

问当我缺少包中的最后一级目录时,为什么我可以编译它?
EN

Stack Overflow用户
提问于 2018-08-21 17:31:21
回答 1查看 52关注 0票数 0

为什么我可以编译和运行它,当我错过了包中的最后一级目录?

最近几天我正在学习springboot。当我运行我的代码时,它会编译,并且可以在浏览器中访问。但是,我发现我的包路径并没有完全写入。

​

​

如您所见,package必须是com.test.forfree.controller,但在我的代码中,它是com.test.forfree

代码语言:javascript
复制
package com.test.forfree;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Hello Boot 2.10!";
    }
}

我使用mvn spring-boot:run来运行这个项目,它的工作原理是:

​

​

然后将package语句更改为com.test.forfree.controller

代码语言:javascript
复制
package com.test.forfree.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Hello Boot 2.10!";
    }
}

它仍然可以成功编译并运行。为什么?

EN

回答 1

Stack Overflow用户

发布于 2018-08-21 18:27:56

对于源代码来说,目录和包名的对齐通常是一个好主意,但这并不是必须的。根据你编译代码的准确程度,工具可能会抱怨它,警告你,然后仍然编译它,或者只是静默地编译你的代码。

目录结构必须与包结构匹配的位置用于存放类文件(直接在磁盘上或在jar文件中)。

如果检查target目录的内容,您会注意到.class文件都在“正确”的目录中,即使原始的源文件不在。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51945668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档