如何将命令行参数传递给 IntelliJ 本身,以改变 IDE 的行为(不是 IDE 中我自己的应用程序)?

How to pass command-line arguments to IntelliJ itself, to alter behavior of IDE (not my own app within IDE)?

我想尝试在 macOS 上为 Java 17 使用新的基于 Metal 的渲染管道,如 JEP 382: New macOS Rendering Pipeline. The new feature is not enabled by default. To switch from the default (OpenGL) to the new feature (Metal), one must supply the JVM 中所述,启动时使用命令行参数:

-Dsun.java2d.metal=true

我想在 Metal 而不是 OpenGL 下尝试 运行 IntelliJ。所以我需要说服 IntelliJ (a) 使用 Java 17,并且 (b) 将该参数传递给驱动其自身操作的 JVM。

我知道 IntelliJ 在其内部捆绑的 JVM 上运行,而不是在我的 Mac 上安装的 JVM。所以:

我在 MacBook Pro with Apple Silicon(M1 芯片)上的 macOS Big Sur 上使用 IntelliJ IDEA 2021.2.2(终极版)。


不是询问如何将命令行参数传递给在 IntelliJ 中开发的应用程序。所以我 而不是 询问如何使用 IntelliJ 的 Run/Debug Configurations 功能。该主题已在 Stack Overflow 上被多次询问和回答。

How do I know the version of the JVM being used by IntelliJ?

您可以在 'about' 对话框中找到:

Can I point IntelliJ towards another JVM for its own operations, for a later version of 17 (understanding that I am operating IntelliJ in an untested and unsupported environment)?

从技术上讲可以,但我认为这可能会导致 IDE 出现问题?他们的文档中有一个警告,请参阅 Change the boot Java runtime of the IDE 切换到自定义 JDK。

How do I pass a command-line argument to that JVM when IntelliJ is launching?

一旦您的 IDE 是 运行,请转到 Help > Edit Custom VM options,查看他们的 Advanced configuration 页面。