web-dev-qa-db-ja.com

Spring Boot Programはメインクラスを見つけることができません

EclipseでSpringブートアプリとして実行するプログラムがあります。プログラムは正常に実行されていました。その後、私は次のことをしました:

プロジェクト-> Run As-> Maven Testを右クリックします。

これは偶然でした。その後、プログラムをスプリングブートアプリとして再度実行しようとすると、以下のエラーがスローされました。

Error: Could not find or load main class com.bt.collab.ALU.api.webapp.Application

アプリケーションをメインクラスに戻すにはどうすればよいですか?ありがとう

49

メインクラスはpom.xmlで構成可能です

<properties>
    <start-class>com.bt.collab.ALU.api.webapp.Application</start-class>
</properties>
35
MariuszS

同じ問題がありました。これを試して :

プロジェクトを右クリック-> Maven-> Update Project

次に、プロジェクトを再実行します。それがあなたにも役立つことを願っています。

75
mantri

Eclipseの「実行->実行構成...」をご覧ください。誤って作成した新しいものを削除する必要がありますが、既存のものは引き続き必要です。

「Run as Maven Test」の新しい実行構成が作成されたのではないかと疑っていますが、現在は常にこの構成を開始しています。

15
thedoctor

Spring Bootを使用していて、上記の提案が機能しない場合は、Eclipse問題ビュー([ウィンドウ]-> [ビューの表示]-> [問題]で確認できます)をご覧ください。

たとえば、jarファイルの1つが破損している場合、同じエラー(エラー:メインクラスgroupId。Applicationを見つけられないかロードできませんでした)を受け取ることができます。悪いjarが根本的な原因であるにもかかわらず、EclipseはApplicationsクラスを見つけることができないと文句を言います。

ただし、問題ビューでは、不良jarが特定されます。

とにかく、ローカルのmvnリポジトリ(.m2内)に手動で移動して、破損したjarを手動で削除し、更新(パッケージエクスプローラーでプロジェクトを右クリック)、Maven->プロジェクトの更新... -> OK(正しいプロジェクトにチェックマークが付いていると仮定)。

13
Tihamer

これは私がpomを更新した後に起こりました(いくつかの依存関係を追加しました)。

次の手順は、このエラーを回避するのに役立ちました

right click on the project > maven > update project
7
tadtab

spring-boot:runコマンドを使用して、スプリングブートアプリケーションを起動します。

前提条件: 1. pom.xmlに次のプロパティを追加します

<property>    
<start-class>com.package.name.YourApplicationMainClass</start-class>
</property>

2.プロジェクトをビルドする

次に、spring-boot:runを使用してmavenコマンドを構成します。

ナビゲーション:

プロジェクトを右クリック|実行者|実行構成... |コマンドspring-boot:runで新しいMaven構成を追加します

4
Techflash

誰かがビルドにGradleを使用している場合、修正はbuild.gradleファイルに次の行を追加することで行われます

apply plugin: 'application'

mainClassName = "com.example.demo.DemoApplication"

4
dkb

エラー:メインクラスをロードまたは検索できませんでした

プロジェクト:Spring Boot Tool:STS


手順を解決します。


  1. プロジェクトを実行する

  1. [問題]タブを参照してください。破損したエラーが表示されます

  1. .m2フォルダー内の特定のjar(破損したjar)を削除します

  1. プロジェクトを更新

  1. 正常に実行

2
suraj chennoju

Spring 1.5.3.RELEASEバージョンを使用し、pomの依存関係を指定しました

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
    </parent> 

   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
   </dependencies>

そして私のメインクラスは

@SpringBootApplication
public class SpringAppStarter {


    public static void main(String[] args) {

        SpringApplication.run(SpringAppStarter.class, args);
    }

}

しかし、まだメインクラスの実行中に私は得ていました:

私のクラス名でメインクラスを見つけられないか、ロードできませんでした。

クラスがクラスパスで利用可能であり、STS IDEを使用していたことがわかりました。

私は問題の理由を得ていなかったので、Mavenを介して手動でビルドしようとしました

mvn clean install

それでも問題があったので、プロジェクトに2つのライブラリがあることがわかりました

  1. 参照ライブラリ
  2. Mavenライブラリー

私がしたこと:
別のmavenRepoフォルダーを作成し、再度ビルドして、プロジェクトを更新しました。その後動作し、プロジェクトクラスパスからMavenライブラリが削除されたことがわかりました。

問題は実行中に複数のバージョンを取得していたため、アプリケーションを実行するための適切なクラスを見つけることができませんでした。このページにリストされている他のソリューションも問題を解決しますが、

  1. クラスに注釈を付ける
  2. ポンエントリー
  3. jarバージョンなど.

誰かがこの問題を受け取った場合、これが問題を解決することを願っています

2
Kushwaha

.m2から古いjarを削除し、mavenプロジェクトを更新することが主要なステップです。ほとんどの場合、問題は解決します。この問題の原因は、ほとんどが古いjarファイルの破損です

2
Sujeet

同じ問題が発生し、以下の手順に従って修正することができました。

  1. ファイル->キャッシュを無効にして再起動
  2. ファイル->新規->既存のソースからのプロジェクト
  3. pom.xmlファイル(プロジェクトディレクトリ全体ではなく)を選択して、プロジェクトをロードします。プロジェクトは自動的にセットアップされます。
1

私も同じ問題に直面しましたが、後で、自分の環境でMavenビルド操作が適切に行われていないことが原因であることがわかりました。あなたの場合も確認してください。

0
das

これはかなり遅い答えだと思います。しかし、それはまだいくつかの新しい学習者を助けるかもしれません。次の例は、NETBEANSを使用したspringboot専用です。次の手順を実行する必要がありました。

ステップ1。 @Mariuszs answerに従ってください。

ステップ2。プロジェクトを右クリック->プロパティ->実行Main Classフィールドに正しいスタータークラスがあることを確認します。そうでない場合は、参照をクリックして、使用可能なクラスから選択します。

ステップ。 [OK]-> [OK]をクリックします。タントがすべてです。ありがとうございました。

0
mohammed nathar

私の場合、次のことが役立ちました。

Pomに次のセクションを追加しました

  <plugins>
    <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
    </plugin>
  </plugins>

Maven3を使用して実行し、動作しました

0
shabby

あなたが出くわした場合

エラー:Mavenプロジェクトでメインクラスを見つけられないか、ロードできませんでした

これは私のために働いた:
エラーの理由:このエラーの理由は、jarファイルまたはmavenプロジェクトを実行するための依存関係が正しくインストールされていないことです。

エラーの解決策:プロジェクトフォルダーに移動します(例:D:\office\OIA-service-app
コンピューターのアドレスバーに「cmd」と入力してEnterキーを押します。
コマンドプロンプトタイプコマンドmvn clean installで、インターネットに接続していることを確認します。

0

私は、スプリングブートとmavenビルドでSTSを使用するのが初めてです。上記のすべてを実行しましたが、うまくいきません。 STSの問題ウィンドウに2つの問題があることに気付きました。パスに不足しているjarファイルがありました(C:\ Users\UserName.m2\repository\com\jayway\jsonpath\json-path\2.2.0)。私は次のことをしました、その方法は強く提案されていませんが、私のために働きました。

1)パスの場所から.m2フォルダーを削除しました

2)STSの再起動

3)プロジェクトフォルダーを右クリック-> maven->プロジェクトを更新->「スナップショット/リリースの更新を強制」をチェック-> OKをクリックします。

Mavenは依存関係を更新し、問題は解決しました。

0
amol

私は同じ問題に直面していました。ターゲットフォルダーを削除し、maven installを実行しましたが、うまくいきました。

0
Prasad Revanaki

私もこのエラーを受け取りましたが、手がかりがありませんでした。ターゲットフォルダにクラスとjarが表示されました。後でMaven 3.5をインストールし、Mavenのconf/settings.xmlを使用してローカルリポジトリをCドライブから他のドライブに切り替えました。それはその後完全に問題なく動作しました。 Cドライブにローカルレポジトリを持つことが主な問題だと思います。レポはフルアクセスを持っていたにもかかわらず。

0
Vikky

Spring Securityの依存関係をプロジェクトに追加しているときに同様の問題が発生したため、ターゲットフォルダーを削除し、mavenの更新を再度使用しました。それは私のために働いた。

0
Gautam Mishra

私は同じ問題を抱えていました。ローカルリポジトリから.m2フォルダフォルダを削除するだけでうまくいくことを願っています。

0
Merwais Muafaq

プロジェクトパッケージタイプがwarの場合、開始できませんでした。この構成でmaven Assemblyプラグインを使用していました。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-Assembly-plugin</artifactId>
            <version>3.0.0</version><!--$NO-MVN-MAN-VER$ -->
            <configuration>
                <descriptors>
                    <descriptor>Assembly.xml</descriptor>
                </descriptors>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.ttech.VideoUploaderApplication</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-Assembly</id> <!-- this is used for inheritance merges -->
                    <phase>package</phase> <!-- bind to the packaging phase -->
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

私のパッケージングTPEは戦争でしたが、メインクラスの例外を見つけることができませんでした。

<groupId>com.ttect</groupId>
<artifactId>VideoUploadListener</artifactId>
<version>1.0.0</version>
<packaging>**jar**</packaging>
0
mertaksu