【发布时间】:2014-05-10 10:02:02
【问题描述】:
我开发了一个简单的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 中运行)?谢谢。
【问题讨论】:
-
你改变了jar的执行权限吗?
-
能否请您发布组装插件的配置?