IDEA右键新建时没有Java Class选项的解决过程

 更新时间:2025年11月21日 09:34:25   作者:码农小C  
今天遇到在IntelliJ IDEA中无法新建JavaClass文件的问题,经过查询和实践,找到了两种解决办法,第一种是避免将包名设置为Java的关键字,例如将"abstract"改为"abstract_";第二种是通过Project Structure设置Sources目录,将包含Java类的目录标记为Sources

今天遇到一个比较恶心的情况,就是想要新建Java Class文件,在右击new后面的选项里找不到Java Class这一项。然后经过查询才知道怎么回事,在这里也跟大家普及一下。

1、问题描述

右键new没有javaclass选项,而是下图这个页面:

2、解决办法1(很简单)

自己建的包名为“关键字”,比如说我刚才建的包是 abstract,是关键字,不行。

只需要删了包,重建,再包后边价格下划线即可。例如 abstract_

右键new就有了。问题解决。

3、解决办法2(专业)

按步骤点

  • 1.File–Project Structure
  • 2.按以下步骤点。

3.右键new,就有JavaClass了

4、问题的原因(原理)

其实按以上步骤问题已经解决了,但是问题的原因是什么呢?和设置的原理是什么?接下来就是具体讨论。

如上图红圈所示,我们可以根据对项目的任意目录进行这五种目录类型标注,这个知识点非常非常重要,必须会。

  • Sources: 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
  • Tests: 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比彻底的。
  • Resources: 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Test Resources: 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
  • Excluded: 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。

通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java基于动态规划法实现求最长公共子序列及最长公共子字符串示例

    Java基于动态规划法实现求最长公共子序列及最长公共子字符串示例

    这篇文章主要介绍了Java基于动态规划法实现求最长公共子序列及最长公共子字符串,简单描述了动态规划法的概念、原理,并结合实例形式分析了Java使用动态规划法求最长公共子序列以及最长公共子字符串相关实现技巧,需要的朋友可以参考下
    2018-08-08
  • java实现统计字符串中字符及子字符串个数的方法示例

    java实现统计字符串中字符及子字符串个数的方法示例

    这篇文章主要介绍了java实现统计字符串中字符及子字符串个数的方法,涉及java针对字符串的遍历、判断及运算相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • MyBatis中的模糊查询语句

    MyBatis中的模糊查询语句

    这篇文章主要介绍了MyBatis中的模糊查询语句的相关资料,需要的朋友可以参考下
    2017-03-03
  • SpringBoot中fastjson自定义序列化和反序列化的实战分享

    SpringBoot中fastjson自定义序列化和反序列化的实战分享

    在fastjson库中,为了提供灵活的序列化和反序列化机制,设计了一系列的扩展点,以下是在SpringBoot和SpringClould环境中对这些扩展点的详细介绍及其实战使用,通过代码示例讲解的非常详细,需要的朋友可以参考下
    2024-07-07
  • java中的4种循环方法示例详情

    java中的4种循环方法示例详情

    大家好,本篇文章主要讲的是java中的4种循环方法示例详情,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 浅谈java监听器的作用

    浅谈java监听器的作用

    这篇文章主要介绍了浅谈java监听器的作用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 基于Mybatis实现动态数据源切换的示例代码

    基于Mybatis实现动态数据源切换的示例代码

    在当今的互联网应用中,微服务大行其道,随着业务的发展和扩展,单一的数据库无法满足日益增长的数据需求,本文将基于 JDK17 + Spring Boot 3 和 MyBatis 框架实现动态切换数据源功能,需要的朋友可以参考下
    2024-09-09
  • java 反射机制

    java 反射机制

    本文主要介绍了java反射机制的相关知识,具有一定的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll 错误的解决方法

    启动 Eclipse 弹出 Failed to load the JNI shared library jvm.dll

    这篇文章主要介绍了有时候,新电脑上回碰到打开Eclipse时,弹出提示“Failed to load the JNI shared library jvm.dll”错误,这里给大家分享解决方案
    2016-08-08
  • Springboot自动配置与@Configuration配置类详解

    Springboot自动配置与@Configuration配置类详解

    这篇文章主要介绍了SpringBoot中的@Configuration与自动配置,在进行项目编写前,我们还需要知道一个东西,就是SpringBoot对我们的SpringMVC还做了哪些配置,包括如何扩展,如何定制,只有把这些都搞清楚了,我们在之后使用才会更加得心应手
    2022-07-07

最新评论