“com.intellij.openapi.application.ApplicationManager.getApplication()”为空

问题描述 投票:0回答:1

这是我的代码:

import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectManager;

public class Main {
  public static void main(String[] args) {
    Project[] projects = ProjectManager.getInstance().getOpenProjects();
    for(Project project: projects) {
      System.out.println(project.getName());
    }
  }
}

当我运行这段代码时,我得到

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.intellij.openapi.application.Application.getComponent(java.lang.Class)" because the return value of "com.intellij.openapi.application.ApplicationManager.getApplication()" is null
    at com.intellij.openapi.project.ProjectManager.getInstance(ProjectManager.java:36)
    at Main.main(Main.java:6).

我想知道为什么以及如何获取所有开放项目。有人可以帮助我吗?

java gradle intellij-idea plugins
1个回答
0
投票

这些类 IntelliJ platofrm API,必须作为 IDEA 主进程中的插件运行,但不能作为简单的 HelloWorld Java 应用程序运行。换句话说,如果你使用

public static void main(String[] args) {
运行它,则根本没有 IDEA 运行,因此所有 API 都将返回 null。

有关如何创建 IntelliJ 插件的更多信息,请参阅 https://plugins.jetbrains.com/docs/intellij/creating-plugin-project.html

© www.soinside.com 2019 - 2024. All rights reserved.