前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >将引用了第三方jar包的Java项目打包成jar文件

将引用了第三方jar包的Java项目打包成jar文件

原创
作者头像
JQ实验室
发布2022-10-08 19:49:25
发布2022-10-08 19:49:25
82000
代码可运行
举报
文章被收录于专栏:实用技术实用技术
运行总次数:0
代码可运行

用Eclipse自带的Export功能:

在该项目下建立自定义配置文件MANIFEST.MF:

什么是MANIFEST.MF:MANIFEST.MF描述Jar文件信息的说明文件;JAR文件中经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF;该文件包含主类以及加载类路径等信息;

MAINFEST.MF文件有着严格的格式限制,一般都是系统生成,如果是自己写的话,一定要注意格式的书写,一个简单的空格都会影响到程序的启动;

之前写的一个文件就遇到过这个问题,

代码语言:c
代码运行次数:0
复制
Manifest-Version: 1.0

Class-Path: lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar 

Main-Class: com.main

问题及解决记录如下:

坑在这里:

代码语言:c
代码运行次数:0
复制
Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;

------------------------------------

假设我们的项目打包后为fat.jar,那么按照上面的定义,应该在 fat.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;

-------------------------------------

Main-Class后面是类的全地址,比如你的主文件是fat.java,文件里打包为package com.main; 那么这里就写com.main,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;

--------------------------------------

写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,否则将会出现“jar中没有主清单属性”的错误。

右击Java工程选择Export—>选择JAR file—>Next

选择要打包的文件,并进行选项配置

选择我们在第一步中自定义的配置文件路径

Finish

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档