You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ApplicationManager.getApplication()返回null,无法获取IntelliJ已打开项目

解决IntelliJ API获取打开项目时ApplicationManager.getApplication()返回null的问题

问题原因

你直接通过main方法运行代码时,没有初始化IntelliJ平台的核心运行环境。IntelliJ的所有核心组件(包括ProjectManager)都依赖于IDE启动时创建的Application上下文实例,单独运行普通Java类时这个上下文完全不存在,所以ApplicationManager.getApplication()会返回null,最终导致调用ProjectManager.getInstance()时抛出空指针异常。

正确解决方案

IntelliJ平台API只能在IDE自身的运行环境内调用,你可以通过以下两种方式实现:

方案1:开发IntelliJ插件(正式场景)

  1. 新建一个IntelliJ插件项目(使用IntelliJ IDEA的Plugin SDK向导创建)
  2. 编写一个继承自AnAction的动作类,在IDE内部执行代码:
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;

public class ListOpenProjectsAction extends AnAction {
    @Override
    public void actionPerformed(AnActionEvent e) {
        Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
        for (Project project : openProjects) {
            System.out.println("已打开项目:" + project.getName());
            // 推荐使用IDE日志系统输出,便于查看:
            // com.intellij.openapi.diagnostic.Logger.getInstance(getClass()).info("已打开项目:" + project.getName());
        }
    }
}
  1. 在插件配置文件plugin.xml中注册该动作,比如添加到Tools菜单:
<actions>
    <action 
        id="ListOpenProjectsAction" 
        class="your.package.name.ListOpenProjectsAction" 
        text="列出已打开项目" 
        description="获取并打印IDE中所有已打开的项目">
        <add-to-group group-id="ToolsMenu" anchor="last"/>
    </action>
</actions>
  1. 运行插件配置,启动测试IDE后,在Tools菜单点击「列出已打开项目」即可正确获取所有打开的项目。

方案2:使用IDE内置脚本控制台(临时调试)

如果只是临时调试,无需开发插件,可以直接用IntelliJ的内置脚本控制台:

  1. 打开IDE的Tools > IDE Script Console(或通过搜索「Script Console」找到)
  2. 输入以下Groovy脚本并执行:
import com.intellij.openapi.project.ProjectManager

def openProjects = ProjectManager.instance.openProjects
openProjects.each { project ->
    println("已打开项目:${project.name}")
}

执行后即可在控制台看到所有已打开的项目名称。

内容的提问来源于stack exchange,提问作者蒋莹莹

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:28:14