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

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

用Eclipse自带的Export功能:
在该项目下建立自定义配置文件MANIFEST.MF:

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

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

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

Manifest-Version: 1.0
Class-Path: lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar 
Main-Class: com.main

问题及解决记录如下:

坑在这里:

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

相关文章
|
20天前
|
Java
课时103:生成jar文件
本文介绍了Java中生成和使用JAR文件的基本概念与操作。JAR文件用于将多个类文件打包成一个压缩文件,便于管理和分发。通过JDK提供的`jar`命令可以创建JAR文件,并可通过设置CLASSPATH环境变量来配置和使用这些文件。文中还演示了如何定义、编译和打包一个简单的Java程序为JAR文件,并详细解释了JAR文件的结构及配置方法。此外,简要提及了JDK 1.9后引入的模块化系统对JAR文件的影响。
|
4月前
|
Java 开发者
修改JAR文件工具
本文介绍了一款名为JarEditor的IDEA插件,该插件允许用户直接对JAR包内的文件进行增删改查操作,无需先行解压。通过简单的安装与使用步骤,大大简化了传统上需要解压缩、反编译、重新编译及打包的过程。此外,JarEditor还支持对混淆过的JAR文件进行字节码级别的修改,并提供了强大的搜索功能,支持大小写、全词匹配和正则表达式搜索。对于开发者而言,这款插件无疑极大提高了处理JAR文件的效率和便捷性。
197 14
|
5月前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
2004 1
|
7月前
|
Java 开发工具
开发工具系类 之 Cannot determine path to ‘tools.jar‘ library for 17 (D:/Program Files/Java/jdk-17.0.9)
这篇文章讲述了作者在升级JDK至17版本后遇到IDEA无法识别`tools.jar`的问题,并提供了两种解决方法:升级IDEA版本或降低JDK版本,并提供了相关版本的IDEA兼容性信息。
开发工具系类 之 Cannot determine path to ‘tools.jar‘ library for 17 (D:/Program Files/Java/jdk-17.0.9)
|
8月前
|
Java
关于idea报错:Cannot determine path to 'tools.jar' library for 17 (E:\java-jdk\jdk17)的解决办法
关于idea报错:Cannot determine path to 'tools.jar' library for 17 (E:\java-jdk\jdk17)的解决办法
|
8月前
|
关系型数据库 Java 分布式数据库
PolarDB产品使用问题之部署到服务器上的Java应用(以jar包形式运行)无法连接,如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
Java Maven C++
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
144 0
|
7月前
|
Java Spring
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
【Azure 应用服务】一个 App Service 同时部署运行两个及多个 Java 应用程序(Jar包)
|
7月前
|
前端开发 JavaScript Java
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
【Azure 应用服务】App Service For Windows 中如何设置代理实现前端静态文件和后端Java Spring Boot Jar包
|
8月前
|
Java 应用服务中间件 API
java 启动查看jar包加载顺序并设置classpath
java 启动查看jar包加载顺序并设置classpath
523 0