1.包的编译与运行
首先为什么要使用打包命令呢?
如果有多个人共同开发一个项目的时候,这时肯定会出现类名称相同的情况。这样以来开发就比较困难!因为相同的文件会出现覆盖的情况!于是我们采用了包的概念!
包的定义格式:
package 包名称.子包名称;
例如:
package a.b; //定义一个包
public class Demo01//定义Demo01类
{
public String getInfo()//定义getInfo方法
{
return "helloworld";
}
}
程序打包编译:javac –d . Demo01.java
(记住是-d空格.空格)
包本身就是文件夹,所以打包编译后,编译的*.class路径为a.b.Demo01
此时,就可以直接运行class文件了!
程序运行:java a.b.Demo01.
输出结果:helloworld.
2.包的导入
什么时候使用包的导入命令呢?当一个包中的类要调用另一个包中的类时,就需要包的导入指令了!
包的导入格式:import 包的名称.子包名称.类名称 -->手工导入所需的类
import 包的名称.子包名称.* -->由JVM自动加载所需要的类
例如:
Demo01.java:
package a.b; //定义一个包
public class Demo01//定义Demo01类
{
public String getInfo()//定义getInfo方法
{
return "helloworld";
}
}
ImportDemo01.java:
package a.c; //定义一个包
import a.b.Demo01; //导入demo01类
public class ImportDemo01
{
public static void main(String args[])
{
System.out.println(new Demo01().getInfo());//调用Demo01中的getInfo方法
}
}
由代码可知,ImportDemo01.java需要用到Demo01.java中的Demo01类,所以我们用import a.b.Demo01;将其导入了进去!
然后在CMD命令中打包编译:
javac –d .Demo01.java
javac –d . ImportDemo01.java
java a.b. ImportDemo01
得到结果:helloworld!
3.Jar命令的使用!
Jar命令可以将开发中使用的类进行压缩成.jar文件。
jar命令的只要参数:
“c”创建新的文档
“v”:生成详细的输出信息
“f”指定存档的文件名
例如:
package a.b; //定义一个包
public class Demo01//定义Demo01类
{
public String getInfo()//定义getInfo方法
{
return "helloworld";
}
}
将其打包编译:javac -d . Demo01.java
将其打成jar包:jar -cvf my.jar a
打包成功后,会看到:
已添加清单
正在添加: a/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: a/b/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: a/b/Demo01.class(输入 = 280) (输出 = 217)(压缩了 22%)
正在添加: a/c/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: a/c/ImportDemo01.class(输入 = 488) (输出 = 323)(压缩了 33%)
文件夹a被打包成了my.jar,这是可以删除文件夹a.
要想调用jar包中的Demo01类,则必须先设置classpath;
set classpath=,;d:\testjava\packDemo\my.jar
设置的路径便是你压缩的.jar的路径!
package a.c; //定义一个包
import a.b.Demo01; //导入demo01类
public class ImportDemo01
{
public static void main(String args[])
{
System.out.println(new Demo01().getInfo());//调用Demo01中的getInfo方法
}
}
然后将其编译
javac -d . ImportDemo01.java
运行
java a.c.ImportDemo01
输出
helloworld