Java_包

包的定义:

在任何操作系统中有一个统一的共识,同一个目录下不能够存在有相同的文件名称,但在开发之中又不可能不出现不冲突的现象,为了解决,会引用包的概念,其实就是一个文件夹,,就是在不同的目录中可以存放相同的文件。

java中直接使用package关键字

范例:定义包

package cn.mldn.demo; //包名称  cn文件夹下mldn文件夹下demo文件夹下

public class Hello{

  public static void main(String args[]){

    System.out.println("Hello World");

  }

}

一旦声明的包,那么必须将生成的*.class文件,包不是手工创建的,在java中专门提供了打包编译操作:

范例:打包编译

javac -d . Hello.java

" -d " :生成目录,默认情况下根据package定义的内容生成;

“ . ” :生成程序的保存路径,设置为:.  表示当前目录下保存

如果程序有包了,那么解释程序时候必须加上包名称,此时的Hello类要执行必须输入:

java cn.mldn.demo.Hello

所有java项目开发,程序类必须要有包的定义才可以使用,没有包的类不存在,

而类的完整名称“包.类”

导入包

import 包.类 ;

范例:定义一个cn.mldn.util.Message的类

package cn.mldn.util ; 

public class Message {  //如果不加public,外包不能访问这个类,只能在此包使用

  public String getInfo(){

    return “******”;

  }

}

用另一个类导入Message包:

package cn.mldn.test;

import cn.mldn.util.Message; //导入其他包的类

public class TestMessage{

  public static void main(String args[]){

    Message msg = new Message();

    System.out.println(msg.getInfo());

  }

}  

使用import 包.*;如import  cn.mldn.util.* ;不会将包中所有的类都导入,而是加载所需要的类,不需要的不加载。

有可能一个程序导入两个不同的包,但是不同的包有相同的类。避免此种错误,使用包里的类的时候要用完整的名称:

cn.mldn.util.Message msg = new cn.mldn.util.Message();  //把包名也加上

编写顺序:package、import、public class

Java常见包:java.util 工具包  java.lang.reflect 反射开发包,直接与框架开发有关 java.util.regex 正则表达式开发包

java.text 国际化程序支持包   java.io 数据流的开发包,前提:抽象类   java.sql 数据库编程包

jar命令

项目完成后保存成jar

范例:现在有一个包

package cn.mldn.util ; 

public class Message {  //如果不加public,外包不能访问这个类,只能在此包使用

  public String getInfo(){

    return “******”;

  }

}

将cn包打成my.jar,在命令窗cmd输入:jar -cvfmy.jar cn;

打成的jar打开。有一个META-INF/MANIFEST.MF

原文地址:https://www.cnblogs.com/lonske/p/8729464.html