java中运行jar包提示没有主清单属性解决方法
原因:jar包解压后中的META-INF文件夹下的MANIFEST.MF文件缺少定义mainClass属性。说白了就是没有指定class类。MANIFEST.MF其实就是一个清单文件,
解决方法:java项目对应的pom文件中打包插件中添加archive及manifest子标签(完整如下图所示);
com.xxxx.db.core.xxxxx
maven-assembly-plugin
3.0.0
make-assembly
package
single
p
r
o
j
e
c
t
.
a
r
t
i
f
a
c
t
I
d
{project.artifactId}
project.artifactId{project.version}
<!-- 打包生成的文件是否要追加 release.xml 中定义的 id 值 -->
<appendAssemblyId>true</appendAssemblyId>
<!-- 将依赖包一起打包 -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- 指向打包描述文件 package.xml -->
<descriptors>
<descriptor>assembly/assembly.xml</descriptor>
</descriptors>
<!-- 打包结果输出的基础目录 -->
<outputDirectory>${SP_HOME}\COMMON\Libs\jdbc\xxxx</outputDirectory>
<!-- MANIFEST.MF中Main-Class设置 -->
<archive>
<manifest>
<mainClass>com.spinfosec.db.core.xxxx</mainClass>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>