博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中包的命令行(cmd)操作详解
阅读量:6990 次
发布时间:2019-06-27

本文共 1653 字,大约阅读时间需要 5 分钟。

一、什么是包?

为了更好地组织类,防止在一个空间下出现类重名,Java提供了包机制。包是类的容器,用于分隔类名空间(类型于C++中的命名空间)。如果没有指定包名,所有的示例都属于一个默认的无名包(又称缺省包,缺省, 可理解为“省略的值为默认值”,故而应读“shěng ”。)

   package语句必须是文件中的第一条语句。也就是说,在package语句之前除了空白和注释之外不能有任何语句。所以一个文件只允许一个包存在,看代码:

 

1 package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))2 package ccc;3 public class a4 {5     public static void main(String[] args){6       bb.cc.dd.b dog = new bb.cc.dd.b();7       dog.fun();8     }9 }

 

编译:

 

二、命令行需要用到的命令

 编译:javac -d . 文件名.java

 解析:

   -d  的命令是:该选项用于指定生成的class目标文件的目录。如果某个类是一个包的组成部分,则 javac 编译时会将把该类文件放入指定包名的子目录中,如果没有就创建目录。若未指定 -d 选项, javac 将把类文件放到与源文件相同的目录中(也就是默认目录)。

   .    的命令是表示把生成的.class文件放在当前目录(注意前后都有空格),从JDK5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。比如前面是C:\>   那么你所输入的命令就代表在c盘根目录下进行操作.如果你想要把生成的.class文件放在其他位置比如d盘根目录,那么命令就变为javac -d d:\ hello.java。

 

三、代码    整体思路:先创建一个b.java文件里面有类b,然后声明一个包的路径bb.cc.dd,意思是把编译好的.class文件放在bb的子目录里的cc的子目录里的dd中,然后创建一个a.java的文件里面有类a,声明一个aa的包,然后在aa.java中引用b.java里面的b类(注意:之所以先创建b类,是因为b类里面要先编译a类里面才能引用 创建b类的代码:

 

1 package bb.cc.dd;2 public class b3 {4     public void fun(){5      System.out.println("哈哈哈哈");6     }7 }

 

编译:javac -d . b.java

然后就在bb->cc->dd-> b.class  如:

再创建a类中的代码(如果不导入包的话就用 . 来访问):

1 package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))2 public class a3 {4     public static void main(String[] args){5       bb.cc.dd.b dog = new bb.cc.dd.b();6       dog.fun();7     }8 }

在使用import 的时候就方便点,效果和上面一样,如:

1 package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))2 import bb.cc.dd.b; // 全部导入:bb.cc.dd.*3 public class a4 {5     public static void main(String[] args){6     b dog = new b();7       dog.fun();8     }9 }

编译:javac -d . a.java     

 

运行  java   包名.类名  如: java aa.a 

图:

 

 

 

   

转载于:https://www.cnblogs.com/qq1871707128/p/6098170.html

你可能感兴趣的文章
machinekey生成工具 v1.0 官方最新版
查看>>
http server v0.1_mime.c
查看>>
open files
查看>>
MVC ——RouteTable.Routes的使用
查看>>
玩转X-CTR100 | STM32F4 l X-Assistant串口助手控制功能
查看>>
TCP/IP学习笔记1--概述,分组交换协议
查看>>
深入百度外链工具引发的思考
查看>>
DataBindings 与 INotifyPropertyChanged 实现自动刷新 WinForm 界面
查看>>
VB中数据占几个字节
查看>>
交通压力主动感知系统
查看>>
对于技术服务和业务的思考
查看>>
数据链路层
查看>>
Memcached 客户端使用
查看>>
【193】◀▶ PowerShell 官方资料索引
查看>>
linux 学习
查看>>
JDK安装和环境变量配置
查看>>
GO环境配置
查看>>
Android ocr识别文字介绍(文字识别)
查看>>
hdoj 2199 Can you solve this equation? 【二分枚举】
查看>>
2014互联网百强企业出炉 八爪鱼排名99
查看>>