Java创建可执行的Jar文件的方法实践

 更新时间:2023年12月24日 16:58:31   作者:张知文  
创建的可执行Jar文件实际就是在原始Jar的清单文件中添加了Main-Class的配置,本文主要介绍了Java创建可执行的Jar文件的方法实践,感兴趣的可以了解一下

在Java中,通常将多个类合并到一个.jar(“ java归档文件”)文件中。库类以这种方式存储。较大的项目使用jar文件。您也可以创建结合了多个类的自己的jar文件。

jar文件是使用JDK的jar.exe实用程序创建的。 通过告诉jar.exe哪个类具有main,可以使jar文件可运行。 为此,您需要创建一个清单文件。 清单是带有“ Main-Class”指令的单行文本文件。 例如:

Main-Class: io.github.jast90.test.Main

该行必须以换行符结尾。(即:多一行)

用主类清单创建的jar文件既可以用作库,也可以用作可运行的jar。 如果将其用作库,则可以编辑和编译jar中包含的任何类,然后将其添加到您的项目中。 然后它将覆盖jar文件中的那个。

您可以在任何文本编辑器中创建清单文件,甚至可以使用MS-DOS echo命令创建清单文件。 您可以为清单文件指定任何名称,但最好使用一些标准名称,例如manifest.txt。

有了清单并编译完所有类后,您需要运行JDK的jar.exe实用程序。 它位于JDK的bin文件夹中,与javac.exe和java.exe相同。 jar.exe接受命令行参数; 如果不带任何参数运行它,它将显示用法信息和示例。 你需要

jar cvfm MyJarName.jar manifest.txt *.class

cvfm的意思是“创建一个jar;显示详细输出;指定输出jar文件名;指定清单文件名。” 这之后是您希望为jar文件指定的名称,清单文件的名称以及要包含在jar中的.class文件的列表。 * .class表示当前目录中的所有类文件。

实际上,如果清单仅包含Main-Class指令,则可以使用e开关(而不是m)直接在jar.exe的命令行上指定主类。 这样就不需要单独的清单文件了; jar将为您添加所需的清单到您的jar文件中。 例如:

jar cvfe MyJarName.jar MyMainClass *.class

以下是在Eclipse中创建jar文件的参考,IntelliJ DEA中创建Jar文件的参考,在Maven创建Jar文件的参考,以及在命令提示符和JCreator中执行此操作的详细步骤。

在Eclipse中创建jar文件

在Eclipse帮助内容中,展开“ Java开发用户指南” ==>“Tasks” ==>“Creating JAR files.”。按照“Creating a new JAR file”或“Creating a new runnable JAR file.”中的说明进行操作。
出于某种原因,JAR File和Runnable JAR File命令位于File菜单下:单击Export …并展开Java节点。

在IntelliJ DEA中创建Jar文件

File -> Project Structure…->Project Settings->Artifacts-> + ->jar-> 选择From modules with dependencies…->选择module、Main Class、JAR files from libraries -> 勾选include in project build

在Maven创建Jar文件

在pom.xml文件中的maven-jar-plugin中指定mainClass,如下:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<configuration>
		<archive>
			<manifest>
				<mainClass>io.github.jast90.java.api.HashMapAnalyzer</mainClass>
			</manifest>
		</archive>
	</configuration>
</plugin>

在JCreator中创建一个jar文件

您可以配置一个“tool”,以自动执行jar创建过程。您只需要做一次。

  • 单击Configure/Options
  • 单击左栏中的Tools。
  • 单击New,然后选择Create Jar file。
  • 在Tools下方的左列中,单击新创建的条目Create Jar File。
  • 编辑标有“Arguments:”的中间行:输入
cvfm $[PrjName].jar manifest.txt *.class
  • 单击OK。
    现在为您的程序设置一个项目,创建一个清单文件manifest.txt或复制并编辑一个现有的项目。 将manifest.txt放在.class文件所在的文件夹中。 在“ View/Toolbars”下,选中“Tools”工具栏。 单击相应的tool按钮,或者按Ctrl-1(如果这是第n个工具,则按Ctrl-n)以运行“创建Jar文件”工具。

使用Windows资源管理器,转到您刚创建的jar文件,然后双击运行它。

在命令提示符下创建jar文件

  • 启动命令提示符。
  • 导航到保存您的类文件的文件夹:
C:\>cd \mywork
  • 设置路径以包含JDK的bin。例如:
C:\mywork> path c:\Program Files\Java\jdk1.7.0_25\bin;%path%
  • 编译你的类
C:\mywork> javac *.java
  • 创建一个清单文件和您的jar文件:
C:\mywork> echo Main-Class: io.github.jast90.test.Main >manifest.txt
C:\mywork> jar cvfm Craps.jar manifest.txt *.class

或者
C:\mywork> jar cvfe Craps.jar Craps *.class
  • 测试你的jar
C:\mywork> Craps.jar

或者
C:\mywork> java -jar Craps.jar

参考

到此这篇关于Java创建可执行的Jar文件的方法实践的文章就介绍到这了,更多相关Java创建可执行Jar文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Java求字符串长度的方法举例

    Java求字符串长度的方法举例

    这篇文章主要给大家介绍了关于Java求字符串长度的相关资料,Java中的字符串是一种常见的数据类型,用于表示文本数据,文中给出了详细的代码实例,需要的朋友可以参考下
    2023-10-10
  • SpringBoot 整合 Grizzly的过程

    SpringBoot 整合 Grizzly的过程

    Grizzly 是一个高性能的、异步的、非阻塞的 HTTP 服务器框架,它可以与 Spring Boot 一起提供比传统的 Tomcat 或 Jetty 更高的吞吐量和更低的延迟,这篇文章主要介绍了SpringBoot 整合 Grizzly的过程,需要的朋友可以参考下
    2025-01-01
  • Idea自动生成Entity实现过程详解

    Idea自动生成Entity实现过程详解

    这篇文章主要介绍了Idea自动生成Entity实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 手把手带你分析SpringBoot自动装配完成了Ribbon哪些核心操作

    手把手带你分析SpringBoot自动装配完成了Ribbon哪些核心操作

    这篇文章主要介绍了详解Spring Boot自动装配Ribbon哪些核心操作的哪些操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • 解决cmd运行java程序“找不到文件”提示的方案

    解决cmd运行java程序“找不到文件”提示的方案

    在本篇文章里小编给大家分享的是关于解决cmd运行java程序“找不到文件”提示的方案,有需要的朋友们可以参考下。
    2020-02-02
  • Java实现文件点击没反应的方法

    Java实现文件点击没反应的方法

    jsp页面链接,点击访问action用IO流去下载服务器上的文件,问题是任凭怎么点击都没反应,日志也不报错。这篇文章给大家介绍Java实现文件点击没反应的方法,需要的朋友参考下吧
    2018-07-07
  • Java中前端传参含有“+”“=”等特殊字符处理方式

    Java中前端传参含有“+”“=”等特殊字符处理方式

    这篇文章主要介绍了Java中前端传参含有“+”“=”等特殊字符处理,比如“+”如果不经过处理,传到Java后台之后,就变成空格了,“=”就直接没了,本文对这一问题给大家详细讲解,需要的朋友可以参考下
    2023-10-10
  • SpringBoot+MyBatis实现动态字段更新的三种方法

    SpringBoot+MyBatis实现动态字段更新的三种方法

    字段更新是指在数据库表中修改特定列的值的操作,这种操作可以通过多种方式进行,具体取决于业务需求和技术环境,本文给大家介绍了在Spring Boot和MyBatis中,实现动态更新不固定字段的三种方法,需要的朋友可以参考下
    2025-04-04
  • Java输入处理的常见错误小结

    Java输入处理的常见错误小结

    在 Java 编程中,输入处理是一个基础但又复杂的任务,尤其是在涉及到与用户交互时,本文将对 Java 输入处理的基本机制进行详细解析,需要的可以了解下
    2024-11-11
  • idea项目全局去掉严格的语法校验方式

    idea项目全局去掉严格的语法校验方式

    这篇文章主要介绍了idea项目全局去掉严格的语法校验方式,具有很好的参考价值,希望对大家有所帮助。
    2023-04-04

最新评论