Ошибка: не удалось найти или загрузить основной класс [Intellij]

Я изо всех сил пытаюсь запустить модульные тесты или основные методы в IntelliJ с помощью кнопки «Выполнить». (Проект был создан через maven)

Вот мой пом.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.andrew.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>

  <properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    <java.version>1.8</java.version>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.6.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Вот каталог моего проекта:

├── my-app.iml
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       └── com
│   │           └── andrew
│   │               ├── app
│   │               └── Hello.java
│   └── test
│       └── java
│           └── com
│               └── andrew
│                   ├── app
│                   └── HelloTest.java
└── target
    ├── classes
    │   └── com
    │       └── andrew
    │           └── Hello.class
    ├── generated-sources
    │   └── annotations
    └── maven-status
        └── maven-compiler-plugin
            └── compile
                └── default-compile
                    ├── createdFiles.lst
                    └── inputFiles.lst

Я пробовал следующее:

  • Установка вывода компилятора проекта на {project directory}/target
  • Недействительный кеш и перезапуск, перестроение
  • Выполнение java com.andrew.Hello в ./target/classes возвращает Hello World
  • Установите ./src/main/java в качестве источника

Но я все еще не могу решить проблему.


person creampiedonut    schedule 14.06.2018    source источник


Ответы (4)


Решение

В структуре проекта -> вывод компилятора я изначально указал /home/andrew/IdeaProjects/Maven:The-Definitive-Guide/my-app/classes

Я должен изменить его на: /home/andrew/IdeaProjects/Maven_The_Definitive_Guide/my-app/classes

person creampiedonut    schedule 14.06.2018
comment
Спасибо, в моем случае выходной путь был неправильным, вы дали мне правильный совет. - person pikkuez; 28.10.2019

Здесь нужно убедиться в нескольких вещах....

Убедитесь, что все ваши методы тестирования снабжены аннотацией {@Test} — см. изображение ниже, которое я также добавил.

После того, как все они будут аннотированы, вы сможете щелкнуть правой кнопкой мыши файл, и после этого должна быть опция запуска теста, после чего кнопка запуска автоматически добавляет последнюю конфигурацию запуска, которая будет последней, которую вы запускали, поэтому она должна отображаться там для кнопки Run

Пример модульного теста Java Intellij

person Robert Squire    schedule 14.06.2018

В моем случае я добавляю команду запуска Maven в IntelliJ Run - Edit Configuration и устанавливаю параметр командной строки как clean install spring-boot:run, он работает как команда запуска ./mvnw clean install spring-boot:run в терминале Mac.

person Yao Li    schedule 28.01.2020

Щелкните правой кнопкой мыши в представлении проекта на Hello -> «Run Hello.main()» должно работать на вас.

person Oliver Tazl    schedule 14.06.2018
comment
Другим возможным решением является добавление подключаемого модуля maven exec к вашему pom и выполнение этой цели stackoverflow.com/questions/1089285/maven -run-project stackoverflow.com/questions/42540018/ - person Oliver Tazl; 14.06.2018
comment
Да, это работает, но есть ли способ использовать кнопку запуска в IntelliJ для запуска основного класса? - person creampiedonut; 14.06.2018
comment
Чтобы запустить проект с помощью кнопки запуска, вы должны либо щелкнуть правой кнопкой мыши в первом комментарии, либо определить цель maven exec: java в качестве конфигурации. После выполнения конфигурация будет сохранена, и кнопка запуска должна действовать по желанию. - person Oliver Tazl; 14.06.2018
comment
Давайте продолжим обсуждение в чате. - person Oliver Tazl; 14.06.2018