java中包的命令行(cmd)操作详解
一、什么是包?
为了更好地组织类,防止在一个空间下出现类重名,Java提供了包机制。包是类的容器,用于分隔类名空间(类型于C++中的命名空间)。如果没有指定包名,所有的示例都属于一个默认的无名包(又称缺省包,缺省,
可理解为“省略的值为默认值”,故而应读“shěng ”。)
package语句必须是文件中的第一条语句。也就是说,在package语句之前除了空白和注释之外不能有任何语句。所以一个文件只允许一个包存在,看代码:
package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))
package ccc;
public class a
{
public static void main(String[] args){
bb.cc.dd.b dog = new bb.cc.dd.b();
dog.fun();
}
}
编译:
二、命令行需要用到的命令
编译: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类的代码:
package bb.cc.dd;
public class b
{
public void fun(){
System.out.println("哈哈哈哈");
}
}
编译:javac -d . b.java
然后就在bb->cc->dd-> b.class 如:
再创建a类中的代码(如果不导入包的话就用 . 来访问):
package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))
public class a
{
public static void main(String[] args){
bb.cc.dd.b dog = new bb.cc.dd.b();
dog.fun();
}
}
在使用import 的时候就方便点,效果和上面一样,如:
package aa; //声明一个包(如果不声明就为一个缺省包(也就是默认包))
import bb.cc.dd.b; // 全部导入:bb.cc.dd.*
public class a
{
public static void main(String[] args){
b dog = new b();
dog.fun();
}
}
编译:javac -d . a.java
运行 java 包名.类名 如: java aa.a
图:
java中包的命令行(cmd)操作详解的更多相关文章
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- Wireshark命令行工具tshark详解(含例子)-01
Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...
- python argparse:命令行参数解析详解
简介 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 import a ...
- argparse:命令行参数解析详解
简介# 本文介绍的是argparse模块的基本使用方法,尤其详细介绍add_argument内建方法各个参数的使用及其效果. 本文翻译自argparse的官方说明,并加上一些笔者的理解 Copy im ...
- Java无包结构命令行编译
无包结构的命令行编译运行方式 如果图片损坏,点击链接:https://www.toutiao.com/i6491250431673500173/ 利用记事本编写一段简单的代码,文件名和类名要一致. 将 ...
- Java中eclipse与命令行向main函数传递参数
我们知道main函数是java程序的入口,main函数的参数类型是String[]. 1.Eclipse中向main方法传递参数 例如: public class Mytest { public st ...
- Windows自带NAT端口映射,命令行CMD操作即可
由于有需求进行端口映射,又不想装乱七八糟的软件,Windows本身自带的路由远程访问配置太麻烦,还要两块网卡,坑爹啊. 其实Windows本身命令行支持配置端口映射,条件是已经安装了IPV6,启不启用 ...
- Android中使用am命令实现在命令行启动程序详解
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 复制代码代码如下: usage: am [subcommand] [options] start an ...
- Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)
1.简介 前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的.这一篇宏哥 ...
随机推荐
- centos 7.0 安装nginx 1.9.10
可以参考以前安装成功的案例 centos 7.0 nginx 1.7.9成功安装过程 官网下载 http://nginx.org/en/download.html nginx下载位置 /usr/loc ...
- 关于ajax请求,在参数中添加时间戳的必要性
之前做项目的时候,看到别人的前端ajax请求代码中,都会带有一个时间戳类型的参数,当时随便查了一下,是为了防止浏览器缓存的原因,所以也没有进行深究,每次写的时候也习惯性的带一个,最近新项目中,我发现好 ...
- 常见ES5方法
• ES5 JSON扩展JSON.parseJSON.stringify • ES5 Object扩展Object.createObject.keys • Date对象Date.now • ES5 F ...
- 分享公司Basecode的用法
主题 公司在basecode的用法上是比较有新意的,所以准备记录分享下公司的用法. 说明 basecode公司的一个主要用途就是用于一些基础的代码表,参数表的前台操作.这些表有很多,用spring d ...
- SpringMVC学习记录3
这次的主题 最近一直在学习SpringMVC..(这句话我已经至少写了3,4遍了....).这次的研究主要是RequestMappingHandlerAdapter中的各种ArgumentsResol ...
- sql表分区
1.单表达多少条数据后需要分区呢? a.个人认为要似情况而定,有些常操作的表,分区反而带来麻烦,可以采用物理分表以及其它方法处理: b.对于一些日志.历史订单类的查询数据,500w左右即可享受 ...
- 3D游戏编程大师技巧──2D引擎的编译问题
接上一篇文章,这里将介绍2D引擎的编译,从现在开始才真正进入<3D游戏编程大师技巧>的学习.本书的第一.二章只是简介了游戏编程和windows编程,从第三章开始才是介绍<window ...
- (总结)隐藏PHP版本与PHP基本安全设置
为了安全起见,最好还是将PHP版本隐藏,以避免一些因PHP版本漏洞而引起的攻击. 1.隐藏PHP版本就是隐藏 “X-Powered-By: PHP/5.2.13″ 这个信息. 方法很简单:编辑php. ...
- 常用vim插件的安装、使用和管理
1.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或者其他工具用来快速查找定位源代码中的符号,入变量名,函数名等.比如,tags文件就是Taglist和 ...
- HTTP Status 400 - Required String parameter 'userName' is not present 错误
HTTP Status 400 - Required String parameter 'userName' is not present 错误 先mark 有时间详细写 参考链接: https:/ ...