2017-06-14 57 views
0

我有两个java项目,动物项目和动物测试项目。在动物项目,我有如下图所示无法运行依赖主要功能

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其中有一个名为动物像注释界面一种称为的方法makesSound()

现在我已经建立并创建动物 jar文件,包括相关性,然后我在我的第二个项目动物试验进口animal.jar。我创建了一个名为AnimalTest.java 类我现在建立和创建一个JAR文件动物Test.jar的,当我运行jar文件中像Java的罐子动物Test.jar的我得到了以下异常

no main manifest attribute, in animal-test.jar 

任何人都可以请帮助我。

+0

貌似主类的属性是不存在'META-INF/MANIFEST.MF'您可以检查是否进入'主类:com.animal.AnimalFinder'出现在MANIFEST.MF文件在罐子里? –

+0

你是怎么创造这个罐子的? –

+0

@JerinJoseph我正在使用'mvn clean install' –

回答

2

您还需要添加插件以在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> 
+0

让我试试这个 –

+0

我有两个罐子'animal-1.0.jar'和'animal-1.0-jar-with-dependencies.jar'。当我运行'java -jar animal-1.0-jar-with-dependencies。jar'我得到了'错误:无法找到或加载主类com.animal.AnimalFinder' –

+0

能否请你帮我在这https://stackoverflow.com/questions/44582091/one-jar-with-one-class-和主类从-dependecy-JAR –