jar文件(jar清单文件)制作详细步骤、分别在cmd、Eclipse中运行jar文件

Java运行环境提供了扩展(\jre\lib\ext), 只要将类打包为jar格式的文件,放入扩展中,程序就可以使用 import 语句使用扩展中的类了;

Java运行环境扩展(\jre\lib\ext)如下图所示:


Java制作jar文件的详细步骤:

第一步:在自己创建路径中使用记事本编写Java源文件;如:(G:\20200209\Test\TestOne\Jar_File.java)

如下图所示:  Jar_File类 用于计算两个double类型数字的和;


第二步:编译源文件生成字节码 .class 文件;

如下图所示:


第三步:在 G:\20200209 目录下编写一个清单文件(清单文件名自拟),如本文清单文件名是:hello.mf

如下图所示:

清单文件创建步骤:

1、在G:\20200209 目录下创建一个 hello.txt 文档

如下图所示:

2、打开文档,输入以下代码:
Manifest-Version: 1.0
Class: Test.TestOne.Jar_File     //(包路径 + 类名),有多个源文件时:Test.TestOne.Jar_File Test.TestOne.Jar_Files
Created-By: 1.8

3、点击另存为,名字改为:hello.mf ,保存类型为 :所有文件 ,编码为:ANSI 

如下图所示:

4、点击保存后 20200209 目录下就生成了一个 hello.mf 的清单文件了,而 hello.txt 文件就可以删除了,不删除也可以;

如下图所示:

清单文件的注意事项:

1、单词不能有错别字;

2、“ :” 后面一定要有一个且只有一个空白字符;


第四步:打开cmd,进入到 G:\20200209 目录中,执行以下命令操作,生成jar文件(名字自拟,如:jartest.jar) ;

命令: 

jar cfm jartest.jar hello.mf Test\TestOne\Jar_File.class
或者:

jar cfm jartest.jar hello.mf Test\TestOne\*.class

解析:

jar cfm  意思是 : jar 创建文件清单;
jartest.jar  意思是 : 所要生成的jar文件;
hello.mf  意思是: 创建的 清单文件;
Test\TestOne\Jar_File.class  意思是: 该路径下指定的字节码文件;
Test\TestOne\*.class  意思是: 该路径下全部的字节码文件;

如下图所示:


第五步:测试创建的jar是否可以使用,重新创建一个Java源文件用于测试;

测试代码如下所示:  

import Test.TestOne.*;

public class JF{

	public static void main(String[] args) {
		Jar_File jf = new Jar_File();
		jf.sumMethod(1.1,11.11);
	}

}

代码中,可以使用: import Test.TestOne.*;  也可以使用: import Test.TestOne.Jar_File;

代码输出结果:两个数的和=12.209999999999999


在 cmd 中运行制作的jar文件,有如下几种情况:

第一种情况:测试源文件 JF.java 没有包路径,与 Test目录 同级,并且 jar包也在此目录下

如下图所示:

所以第一种情况是可以引入 jar包中的类的 ;

第二种情况:测试源文件 JFS.java 有包路径,与 Test目录 同级,并且 jar包也在此目录下

如下图所示:

所以第二种情况是可以引入 jar包中的类的 ;

第三种情况:将 jartest.jar 文件剪切到Java运行环境的扩展中(jre\lib\ext),对源文件重新进行编译和运行字节码文件;
***************是可以的;

第四种情况:将在Java运行环境的扩展中 jartest.jar 文件进行删除,重新进行编译和运行字节码文件;
***************是不可以的,因为此时的 jartest.jar 文件已经没有了;


在 Eclipse 中运行制作的jar文件,有如下几种情况:

第一种情况:将 jar文件放入到Java运行环境的扩展中 ,并打开eclipse任意项目引入jar,并创建测试类进行测试;

如下图所示:

测试类如下:


第二种情况: jar文件不在Java运行环境的扩展中 ,而是在任意目录下,打开eclipse任意项目引入jar,并创建测试类进行测试;

******是可以的,导入的方式和第一种导入一样;

第三种情况: 只将 jar文件放入到Java运行环境的扩展中 ,而在 eclipse 任意项目中不导入jar包,直接使用jar包,可不可以?
 

******是不可以的,因为eclipse 项目中不进行导入的话,是找不到jar包的,所以不可以这样子使用;

以上内容是整个 jar文件的制作流程,并在cmd、eclipse中测试,有不明白的地方欢迎在下方留言,大家一起讨论。

发布了57 篇原创文章 · 获赞 10 · 访问量 7543

猜你喜欢

转载自blog.csdn.net/LagerSwan/article/details/104237844