Java小白攻略-从class到testng

本人作为学生时代上过几堂课的java业余小白在不懈的努力下还是掌握了一些java coding的基础知识,只是至今我都无法相信我的当代软件开发技术与实践课考试刚刚及格的事实,难道我跟学校真的八字不合~在接下来的讲解中不会使用到eclipse这个目前最流行的开发工具,而是在纯粹的命令行环境下编译打包和执行java代码,虽然平时修改代码我也用eclipse,但是eclipse真的是太好用了反而隐藏了java的众多概念与机制,而不了解这些概念和机制很难说掌握了java的开发技巧,即使能写出性能优良的code~毕竟我并不是一个软件开发工程师,因此更加关注如何修改并执行java code而非如何开发,所以这篇文章的主要适用人群是像我这样的通信人,相信读完之后就可以摆脱小白的身份并应用到工作实践中,并且不要担心本文不涉及eclipse会导致文章实践性不足,在了解以下知识点之后eclipse的使用真的可以无师自通~

1.java程序的文件结构与类的调用名-package

即使不懂java也应该知道java是完全面向对象的编程语言,因此本质上java程序里的文件都是定义java类的类文件(.java),并且文件名就是文件中定义public类的类名(class name),即类文件对应java 类:
<class_name>.java <--> java class

为了实现相同类名存在于程序中而且不影响调用,java引入的包的概念,即在类文件中使用package关键字定义该类隶属的包,没有使用package关键字定义包名的类隶属于默认包(default package),其实java包的实质就是文件夹,包名(package name)就是文件夹的名字,类似于使用定义文件夹的层级结构,java包是用. 来表示层级结构,例如存储在com/xxx/yyy目录下类的包名就是com.xxx.yyy,因此文件夹就对应java包:
<package_name>/ <--> java package

我们知道任何文件系统都有一个根目录作为结构顶级,java程序的“根目录”就是所谓的默认包,该“根目录”可以是系统文件系统任意一个文件夹或者是一个jar包,在该“根目录”下或内存储属于默认包的类文件,对应包层级的文件夹结构以后隶属于相应包的类文件,典型的java程序目录树如下所示:

#Java Program Architecture 
.<Any_dir or Jar>
├── A.class
├── package_A
│    ├── B.class
│    └── package_C
│         └── C.class
└── package_B
     └── D.class

在这种层级结构下程序中每个java类都形成对应其存储路径的调用名(call name),即<package_name>.<class_name>,例如上述class A的调用名就是A,class B的调用名是package_A.B,class C的调用名是package_A.package_C.C,class D的调用名是package_B.D

命令行执行java程序即在java命令后指定执行类的调用名,通过调用名中的包名逐级深入直至定位到类文件,然后java虚拟机加载代码执行,需要注意的是存储在一定层级结构的类文件源码中一定要使用package关键字定义当前层级的包,不然即使调用名能正确的反映类文件的位置,java虚拟机也会报错提示找不到该类。

2.java程序的“根目录”

此外类调用名只是反映了类文件在“根目录”下/内的路径,因此让java命令知晓我们开发的java程序“根目录”就十分重要,只有定位了“根目录”才能逐级找到类代码,java提供了两套方案指定程序“根目录(classpath)”。

a. 环境变量 - CLASSPATH

每次执行程序时Java默认会从该环境变量定义的路径下或者jar包中搜索类,该变量中的“.”代表当前路径,也就是执行Java命令的路径,这样就无需将当前完整路径添加到该变量中,命令执行较为方便。

export CLASSPATH=.:/usr/jre/lib:/usr/lib/tools.jar:/xyz/testng-6.11.1-SNAPSHOT.jar:/xyz/jcommander-1.7.jar

b. Java VM 参数- classpath/cp

java -classpath/cp /path:/path/file.jar:/path/file.zip org.testng.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值