Java Eclipse找不到maven项目的主类

Java Eclipse找不到maven项目的主类,java,eclipse,maven,javafx,Java,Eclipse,Maven,Javafx,在您将此标记为重复之前,请注意,我已经阅读了其他几个类似的问题,但没有一个解决了这个问题。 我有一个使用maven的Eclipse项目。它使用Java15和JavaFX13。 当我尝试运行应用程序时,它会显示错误消息: 错误:无法找到或加载主类app.cleancode.Start 我试过: 刷新项目 从maven项目重建 甚至删除所有eclipse文件并重新导入项目 他们都没什么不同 我可以在Eclipse中运行任何其他项目,但这个项目不起作用。 我在Windows 10 home上执行此操作

在您将此标记为重复之前,请注意,我已经阅读了其他几个类似的问题,但没有一个解决了这个问题。 我有一个使用maven的Eclipse项目。它使用Java15和JavaFX13。 当我尝试运行应用程序时,它会显示错误消息:

错误:无法找到或加载主类app.cleancode.Start

我试过:

  • 刷新项目
  • 从maven项目重建
  • 甚至删除所有eclipse文件并重新导入项目
  • 他们都没什么不同

    我可以在Eclipse中运行任何其他项目,但这个项目不起作用。 我在Windows 10 home上执行此操作

    我的pom文件

    <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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>app.cleancode</groupId>
      <artifactId>javafx-app</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <properties>
      <java.version>15</java.version>
      <javafx.version>13</javafx.version>
      </properties>
      <dependencies>
      <dependency>
      <groupId>org.openjfx</groupId>
                <artifactId>javafx-media</artifactId>
                <version>${javafx.version}</version>
      </dependency>
      <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-controls</artifactId>
                <version>${javafx.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-swing</artifactId>
                <version>${javafx.version}</version>
            </dependency>
      </dependencies>
      <build>
      <plugins>
      <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <release>${java.version}</release>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <compilerArgs>--enable-preview</compilerArgs>
                    </configuration>
                </plugin>
      <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.3</version>
        <configuration>
        <mainClass>app.cleancode.Start</mainClass>
        </configuration>
      </plugin>
      </plugins>
      </build>
    </project>
    

    我刚刚发现的另一条信息是,如果我只使用一个main方法创建一个新的Start.java,它就可以正常工作。不知道为什么。

    为了回答我自己的问题,最简单的解决方案是创建一个新的main类,调用原始start的main

  • 首先,将Start.java重命名为Starter.java(或任何您想称之为Starter.java的名称)
  • 最后,在旧的Start.java文件中创建一个新的Start.java文件:
  • Start.java:

    package app.cleancode;
    
    public class Start {
    public static void main(String[] args) {
    Starter.main(args);
    }
    }
    

    然后您可以运行新的Start.java。

    在pluginHello之后添加主类,欢迎使用stackoverflow。由于您已在pom文件中将app.cleancode.Start定义为yur主类,因此当您运行项目时,eclipse正在尝试执行该类,但无法找到它。您的项目代码是否包含Start.java。这在你的课堂路径上吗。请提供有关您的问题的详细信息,以便对社区有益。我已将主要课程添加到帖子中。谢谢你给我反馈,因为我是新来的。如果还有什么需要补充的,请告诉我。
    module app.cleancode.javafx-app {
        exports app.cleancode.axis;
        exports app.cleancode.animation;
        exports app.cleancode;
        exports app.cleancode.sound;
        exports app.cleancode.game.physics;
        exports app.cleancode.bounds;
        exports app.cleancode.game.snake;
        exports app.cleancode.map;
        exports app.cleancode.sprite;
        exports app.cleancode.game;
    
        requires java.desktop;
        requires javafx.base;
        requires javafx.graphics;
        requires javafx.media;
        requires javafx.swing;
    }
    
    package app.cleancode;
    
    public class Start {
    public static void main(String[] args) {
    Starter.main(args);
    }
    }