Ubuntu Java -jar错误:无法找到或加载主类

时间:2014-03-31 06:54:22

标签: java linux jar manifest

我开发了一个简单的java程序,它只有一个主类如下:

public class HelloTest {

  public static void main(String[] args){
     System.out.println("@@@@@@@@@@@@ Hello World! From HelloTest!! ");
  }
}

我使用maven程序集插件将这个程序打包为一个可运行的jar,jar包结构如下:

Test3-0.0.1-assembly.jar

|-----META-INF
|         |
|         |---MANIFEST.MF
|
|-----Test3-0.0.1.jar

这是清单文件:

Manifest-Version: 1.0
Build-Jdk: 1.6.0_18
Class-Path: Test3-0.0.1.jar
Created-By: Apache Maven
Main-Class: com.example.HelloTest
Archiver-Version: Plexus Archiver

运行'mvn clean packge'后,maven在目标目录中生成程序集jar,但程序集jar的清单文件错过'Class-Path'字段,所以我必须添加'Class-用winrar手工制作的路径。我不知道它是否是maven程序集插件bug ...

最后,我在windows中使用'java -jar Test3-0.0.1-assembly.jar',它运行正常。 但我将jar复制到linux(ubuntu),使用相同的命令'java -jar Test3-0.0.1-assembly.jar',它显示错误:无法找到或加载主类com.example.HelloTest < /强>

我真的不知道为什么它在两个系统中显得如此不同,只是同一个罐子。任何人都可以告诉如何解决问题(让jar可以在linux中运行)?感谢。

1 个答案:

答案 0 :(得分:0)

我使用maven-jar-plugin生成MANIFEST代。这是我的配置,也许这​​会有所帮助:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
        <archive>
            <manifest>
                <addClasspath>true</addClasspath>
                <mainClass>com.example.MainClass</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>