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());
    }
}
C.java

(二)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());
    }
}
F.java

(三)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());
    }
}
H.java

四:总结

–包名和类所在的目录必须严格一致
–在命令行中,必须依靠classpath来指引所需要的类
–编译需要文件的全路径,运行需要类的完整

 

posted @ 2018-12-29 21:18  山上有风景  阅读(415)  评论(0编辑  收藏  举报