【问题标题】:not able to runn dependency main function无法运行依赖主函数
【发布时间】:2026-01-04 09:30:01
【问题描述】:

我有两个 java 项目,animal 项目和 animal-test 项目。在 animal 项目中,我有一个名为 Animal 的注释界面,如下所示

Animal.java

package com.animal;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface Animal{
    String name();
} 

除此之外,我还有一个接口 MakeSound.java,它有一个名为 ma​​kesSound() 的方法。

现在我已经构建并创建了包含依赖项的 animal jar 文件,然后我在第二个项目 animal-test 中导入了 animal.jar >。我创建了一个名为 AnimalTest.java 的类 我现在构建并创建了一个 jar 文件 animal-test.jar 并且当我运行像 java -jar animal-test.jar 这样的 jar 文件时,我得到了以下异常 p>

no main manifest attribute, in animal-test.jar

谁能帮帮我。

【问题讨论】:

  • 看起来主类属性在META-INF/MANIFEST.MF 中不存在你能检查一下Main-Class: com.animal.AnimalFinder 条目是否存在于jar 中的MANIFEST.MF 文件中吗?
  • 你是如何创建 jar 的?
  • @JerinJoseph 我正在使用`mvn clean install`
  • @JerinJoseph 我正在导入两个罐子,animal-1.0.jaranimal-1.0-jar-with-dependencies.jar。在animal-1.0.jar 中什么都没有,但在animal-1.0-jar-with-dependencies.jar 我有Main-Class: com.animal.AnimalFinder
  • 您也需要动物试验罐中的清单。检查我的答案。

标签: java maven reflection jar dependencies


【解决方案1】:

您也需要添加插件以在 pom.xml 中创建 MANIFEST 文件以进行动物测试。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.animal.AnimalFinder</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

【讨论】:

  • 让我试试这个
  • 我有两个罐子 animal-1.0.jaranimal-1.0-jar-with-dependencies.jar。当我运行java -jar animal-1.0-jar-with-dependencies.jar 时,我得到了Error: Could not find or load main class com.animal.AnimalFinder
  • 你能帮我解决这个问题吗*.com/questions/44582091/…
最近更新 更多