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文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • springboot省去配置Tomcat的步骤问题

    springboot省去配置Tomcat的步骤问题

    这篇文章主要介绍了springboot省去配置Tomcat的步骤问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • ConditionalOnProperty配置swagger不生效问题及解决

    ConditionalOnProperty配置swagger不生效问题及解决

    这篇文章主要介绍了ConditionalOnProperty配置swagger不生效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 通过url方式传递中文乱码的解决方法

    通过url方式传递中文乱码的解决方法

    本篇文章主要是对通过url方式传递中文乱码的解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • Java快速掌握Vector类方法

    Java快速掌握Vector类方法

    Vector 类实现了一个动态数组。和 ArrayList 很相似,但是两者是不同的:Vector 是同步访问的;Vector 包含了许多传统的方法,这些方法不属于集合框架
    2022-03-03
  • java实现人工智能化屏幕监控窗口

    java实现人工智能化屏幕监控窗口

    这篇文章主要为大家详细介绍了java实现人工智能化屏幕监控窗口,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • idea创建springboot项目(版本只能选择17和21)的解决方法

    idea创建springboot项目(版本只能选择17和21)的解决方法

    idea2023创建spring boot项目时,java版本无法选择11,本文主要介绍了idea创建springboot项目(版本只能选择17和21),下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-01-01
  • SpringBoot后端数据校验实战操作指南

    SpringBoot后端数据校验实战操作指南

    在项⽬开发中,对于前端提交的表单,后台接⼝接收到表单数据后,为了保证程序的严谨性,通常后端会加⼊业务参数的合法校验操作来避免程序的⾮技术性 bug,这篇文章主要给大家介绍了关于SpringBoot后端数据校验的相关资料,需要的朋友可以参考下
    2022-07-07
  • java计算百分比值的方法

    java计算百分比值的方法

    这篇文章主要介绍了java计算百分比值的方法,涉及java数值运算的技巧,需要的朋友可以参考下
    2015-03-03
  • 详解Java语言中的抽象类与继承

    详解Java语言中的抽象类与继承

    这篇文章主要为大家详细介绍了Java语言中的抽象类与继承的相关资料,文中的示例代码讲解详细,对我们学习Java有一定的帮助,感兴趣的小伙伴快跟随小编一起了解一下
    2022-10-10
  • 一篇文章带你了解初始Spring

    一篇文章带你了解初始Spring

    这篇文章主要给大家介绍了一个简单的Spring容器初始化流程的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08

最新评论