阿里云【名师课堂】Java面向对象开发86:jar命令

  • 概念
  • jar命令
  • 总结


概念

jar类比于压缩文件夹(.zip、.rar),我们通常会把一些有关联性的文件放在压缩文件里,为了存储方便以及节约空间。实际上jar也是一种压缩文件,里面保存的都是*.class文件。

  • 比如说,现在要实现一个功能模块里面有几百个类,那么最终交付给用户使用的时候为了方便管理,就会将这些文件形成一个压缩包提供给用户。

jar命令

JDK提供有实现jar文件操作的命令:

javac jar javac jar manifest编译未找到命令_阿里云


但是实际操作时我们并不会这么用,因为用这种jar命令 + 选项的方式过于麻烦。

记住jar命令的几个选项:

  • c:创建一个新的归档文件
  • f:指定生成的jar文件的名称
  • v:详细显示出所有的压缩处理过程
    范例:定义一个Message程序类
package TestDemo.util ;

public class Message {
	public void print() {
		System.out.println("【Message】Hello World") ; 
	}
}

之后需要:

  • 1、将其编译:javac -d . Message.java
  • 2、将生成的程序类打包为jar文件:

    可以看到在当前目录下生成了一个.jar文件。
  • 这个文件可以通过winrar工具打开, 里面有一个META-INF目录,META-INF目录中有一个MANIFEST.MF文件,内容是Java的版本,也可以人工在里面添加内容,用作文件属性、备忘之类。


    程序类的位置:

    此时的msg.jar就包含了所需的程序类,这时如果把原目录中的包删除,而保留msg.jar文件,应该怎么调用?
  • 并不是简单的将其放到程序的目录之中,而是需要配置CLASSPAT,设置jar文件的加载路径。
  • SET CLASSPATH=.;d:\mydemo\msg.jar

范例:编写一个测试程序,调用msg.jar包中提供的Message类

package TestDemo.util ;

public class RunTest {
	public static void main(String args[]) {
		TestDemo.util.Message msg = new TestDemo.util.Message() ;
		msg.print() ; 
	}
}

javac jar javac jar manifest编译未找到命令_阿里云_02

总结

以后的开发过程中会使用大量第三方程序包(.jar文件),这些开发包都必须在CLASSPATH中配置之后才能使用。