JAVA核心技术I---JAVA基础知识(命令行)
Posted 山上有风景
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA核心技术I---JAVA基础知识(命令行)相关的知识,希望对你有一定的参考价值。
一:命令行编译文件
手动在c:\\temp创建cn.com.test.Man.java –即c:\\temp\\cn\\com\\test\\Man.java –c:\\temp可以替换成任何路径,后续命令同样替换 编译: –X:\\>java c:\\temp\\cn\\com\\test\\Man.java 运行 –X:\\>java -classpath .;c:\\temp cn.com.test.Man X代表任意盘符或路径
二:运行class文件
java -classpath .;c:\\temp cn.com.test.Man 第一部分:java,执行命令,是java.exe的简写 第二部分:-classpath 固定格式参数,可以简写成-cp. 第三部分:是一个(Windows分号,Linux/Mac冒号连接起的)字符串。按分隔符隔开,得到一个个子路径。当运行cn.com.test.Man类的过程中,如果需要用到其他的类,就会分裂第三部分的字符串,得到多个子路径,然后依次在每个路 径下,再去寻找相应类(全称,包名以点隔开对应到目录) 第四部分:主执行类的全称(含包名)
package cn.com.test; public class Man{ public static void main(String[] args){ System.out.println("Hello"); } }
三:编译和运行规则
–编译一个类,需要java文件的全路径,包括扩展名。 –运行一个类,需写类名全称(非文件路径),无须写扩展名。 –编译类的时候,需要给出这个类所依赖的类(包括依赖的类再次依赖的所有其他类)的所在路径 –运行类的时候,需要给出这个类,以及被依赖类的路径总和。 –classpath参数也可以包含jar包。如果路径内有空格,请将classpath参数整体加双引号。 –java -classpath “.;c:\\test.jar;c:\\temp;c:\\a bc” cn.com.test.Man
按照路径前后优先级进行搜索,其中空格隔开c:\\a bc表示在这个c目录下的a和bc文件夹下查找文件
(一)C.java编译运行
package A.B.C; public class C{ public int number=10; public int getNum(){ return number; } public void setNum(int num){ this.number=num; } public static void main(String[] args){ C c=new C(); System.out.println("Hello C"+c.getNum()); } }
(二)F.java编译运行
package D.E.F; import A.B.C.C; public class F{ public int number=20; public int getNum(){ return number; } public void setNum(int num){ this.number=num; } public static void main(String[] args){ C c=new C(); c.setNum(13); System.out.println("Hello F"+c.getNum()); } }
(三)H.java编译运行
package G.H; import D.E.F.F; public class H{ public static void main(String[] args){ F f=new F(); f.setNum(31); System.out.println("Hello H"+f.getNum()); } }
四:总结
–包名和类所在的目录必须严格一致
–在命令行中,必须依靠classpath来指引所需要的类
–编译需要文件的全路径,运行需要类的完整
以上是关于JAVA核心技术I---JAVA基础知识(命令行)的主要内容,如果未能解决你的问题,请参考以下文章