• 基础知识总结之 jdk部分


    第一次安装jdk 按照操作走完  会出现 C:Program FilesJavajdk1.8.0_91 和 C:Program FilesJavajre1.8.0_91 两个目录 (平级目录)  这里jre和jdk中的jre目录一模一样,为什么会出现这种呢?

         简单说下:jdk是面向java开发者的 是java开发的sdk,jdk目录下的bin目录最主要的是javac 编译来使用,lib中有dt.jar,tools.jar主要是编译过程中运行环境使用,jdk下的jre目录,主要作用是运行编译好的class文件来使用的,其中,jre下的lib中的rt.jar是所有基础类库,就是java文件中import后面的class基础类,bin目录下主要的是java,也就是JVM,java虚拟机用来运行class来使用,运行class的时候就会调用引用的基础类库.

              C:Program FilesJavajre1.8.0_91是面向用户的,主要作用和jdk中jre作用一样。在eclipse中只需要选择jre  就可以运行java程序,因为eclispe有自己的java编译器,和classpath的配置。

             编译好的class文件是字节码文件,字节码文件是二进制的类库文件,经过JVM的解释运行,成为机器码文件和OS交互运行。

             在eclispe中开发,不需要配置path  classpath ,只需要制定jre,整个编译 由eclipse自己的编译器来实现(JAVA文件称class文件).

       不考虑eclispe的java开发如下:

         配置path  :  ;%JAVA_HOME%in;%JAVA_HOME%jrein;  目的是可以在任意地方使用javac  java  比较简单,不然要输入整个javac java指令路径.

         配置classpath:  ;%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar 指定classpath类加载路径为 jdk下面的lib路径,tools.jar是编译时候来使用的.

         注意:JVM的默认class load路径是jre下面的rt.jar (默认就可以加载所有的基础类库,不需要设置).

        

      windows 编译 java文件:

                1》该java文件没有引用其他外部类的时候:  javac  xxx.java  默认是在当前目录查找 java文件,当前目录没有则报错,也可以采用全路径来指定java文件。编译的时候会自动使用classpath下的tools.jar 以及jre/lib/rt.jar来 编译java文件。注意:java文件在classpath下 ,当前目录不在classpath,也会报错.

                2>java文件引用其他外部类:      也会在当前目录查找java文件,没有则报错,也可以采用全路径来指定java文件。首先会编译外部类,注意:

                             2.1》如果外部java文件或者该文件对应的class文件存在于classpath中,则成功编译。

                             2.2》如果外部java文件不在classpath或者java文件的同级目录下。使用  javac -classpath 外部java文件或者class的目录 xxx.java来编译。

     运行class文件: 先查找当前目录 在查找classpath。 java xxx  其中xxx.class在当前目录或者classpath中都成功,如果引用类存在 保证引用class存在于classpath中成功,或者使用 java -classpath .;外部类目录 xxx即可。

                    

                   

    linux下 如果不配置classpath  jdk8默认的是 classpath是 .   也就是当前目录

          引入第三方jar包

                   javac -classpath /data/cn.nubia.framework.jar WeatherTest.java

                     java -classpath .:/data/cn.nubia.framework.jar WeatherTest            

                     

                     

  • 相关阅读:
    多行文本溢出显示省略号(…)
    CSS3 grayscale滤镜图片变黑白实例页面
    腾讯TGideas语义化标签(转)
    jQuery Ajax通用js封装
    动态加载 js
    Javascript的四种继承方式
    Android四大组件之Activity
    Android四大组件通信的Intent介绍和详解
    oracle学习笔记(十四) 数据库对象 索引 视图 序列 同义词
    oracle学习笔记(十三) 查询练习(三) 子查询查询
  • 原文地址:https://www.cnblogs.com/hadoop-dev/p/6880756.html
Copyright © 2020-2023  润新知