Для такого класса
Код: Выделить всё
package org.example.moduledemo;
public class Main {
public static void main(String[] args) {
System.out.printf("Main module %s%n", System.getProperty("jdk.module.main"));
System.out.printf("Main module class %s%n", System.getProperty("jdk.module.main.class"));
System.out.printf("Module name %s%n", Main.class.getModule().getName());
}
}
Код: Выделить всё
Main module org.example.moduledemo
Main module class org.example.moduledemo.Main
Module name org.example.moduledemo

,
он создает конфигурацию запуска с путем к классу

.
Даже если опция «Использовать путь к классам модуля» не отмечена и конфигурация выглядит так< /p>

,
оно по-прежнему вызывает приложение с помощью командной строки
Код: Выделить всё
"C:\Program Files\Java\jdk-23\bin\java.exe" -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp C:\moduledemo-gradle\build\classes\java\main;C:\moduledemo-gradle\build\resources\main org.example.moduledemo.Main
Код: Выделить всё
Main module null
Main module class null
Module name null

Вызов действия контекстного меню «Выполнить ...main()» запускает приложение модульным способом, когда проект создается самой Idea (т.е. не управляется Gradle).
Я бы мне нравится продолжать использовать идею «Беги ...main()» из-за его простоты. Мне известны обходные пути, такие как плагин приложения Gradle или задача Gradle exec.
Подробнее здесь: https://stackoverflow.com/questions/792 ... ellij-idea
Мобильная версия