IntelliJ IDEA 本地调试 Leetcode 配置 踩坑总结

配置参考文章
由于自己配置的时候没有看参考踩了好多坑,回过头来看完了发现这一篇讲解得比较细,其实很多坑都可以避免的。
以下记录了我自己碰到的问题和解决办法,解决办法是我和GPT共同作者。

Java项目未识别,文件变红

当你的 Java 文件在 IntelliJ IDEA 中显示为红色并且无法将其选为 main class 时,可能是由于以下几个原因:

  1. 项目未正确识别为 Java 项目:你的项目可能没有被正确识别为 Java 项目。
  2. 模块未配置:你的模块可能没有正确配置为包含 Java 代码。
  3. 缺少 SDK 配置:你的项目或模块可能没有配置 SDK。

解决步骤:

1. 确保项目识别为 Java 项目
  • 打开 File -> Project Structure...
  • Modules 选项卡中,确保你的模块被标记为 Java 模块。
    • 如果没有模块,点击 + 号,选择 New Module,然后选择 Java 模块。
2. 配置模块
  • 确保你的模块包含 src 文件夹并且标记为 Sources
    • Modules 选项卡中,选择你的模块。
    • Sources 选项卡中,确保 src 文件夹显示为蓝色。
    • 如果不是蓝色,右键点击 src 文件夹并选择 Mark Directory as -> Sources Root
3. 配置 SDK
  • 打开 File -> Project Structure...
  • Project 选项卡中,确保 Project SDK 已设置为合适的 JDK。
    • 如果没有设置,点击 New... 并选择你的 JDK 安装路径。
4. 检查包声明和文件位置
  • 确保你的 Java 文件在正确的包中,且包声明正确。

例如,你的 SixCE719.java 文件应该位于 src/leetcode/editor/cn/ 目录中,并且包含以下包声明:

package leetcode.editor.cn;

注意此处假如不另外设置,只要配置时显示的是Leetcode中国区那么会自动生成这个package,无需另外修改。

5. 重建项目
  • 有时候重建项目可以解决一些奇怪的问题。
    • 选择 Build -> Rebuild Project

示例步骤

假设你的项目名为 LeetcodeProject,包含 src 文件夹。

  1. 项目结构

    LeetcodeProject
    └── src
        └── leetcode
            └── editor
                └── cn
                    └── SixCE719.java
    
  2. 配置项目结构

    • 打开 File -> Project Structure...
    • Modules 选项卡中,确保 LeetcodeProject 已标记为 Java 模块,并且 src 文件夹标记为 Sources Root
  3. 确保包声明正确

    • 打开 SixCE719.java 文件,确保其顶部有正确的包声明:
      package leetcode.editor.cn;
      
  4. 配置 SDK

    • 打开 File -> Project Structure...
    • Project 选项卡中,确保 Project SDK 设置为正确的 JDK 版本。
  5. 重建项目

    • 选择 Build -> Rebuild Project

生成文件名后出现空格

Leetcode-Editor的作者在Github上提供了Java配置案例,建议直接复制他的,我从CSDN上复制的有些会出现后面括号未闭合问题,有些会多出一些个空格,hu是由于Code Filename的配置最后有空格,这样会产生public类的声明与文件名不符的情况。
然后以下是我自己的配置。

// Code FIlename:
$!velocityTool.camelCaseName(${question.titleSlug})
//Code Template:
package leetcode.editor.cn;
/**
 * @author [你的昵称或名字]
 * $!velocityTool.date()  // 生成当前你做题的时间
 */
public class $!velocityTool.camelCaseName(${question.titleSlug}) {
  public static void main(String[] args) {
       Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug})().new Solution();
  }
  ${question.code.trim()}
}

假如依旧出现java: 类 SixCE719 是公共的, 应在名为 SixCE719.java 的文件中声明这样的问题,可以把code template中的public class改成非公共的,这样依然可以运行:

class $!velocityTool.camelCaseName(${question.titleSlug}) {
  public static void main(String[] args) {
       Solution solution = new $!velocityTool.camelCaseName(${question.titleSlug})().new Solution();
  }
  ${question.code.trim()}
}
  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值