zoukankan      html  css  js  c++  java
  • java-关于java_home配置,classpath配置和javac,java命令,javac编译器,和java虚拟机之间的关系

    在每个人学习java的第一步,都是安装jdk ,jre,配置java_home,classpath,path。

    为什么要做这些?在阅读java-core的时候,看到了原理,p141。

      关于类的共享

      为了使类能被多个程序共享,需要做到以下几步:

      1.把类放到同一个目录中,且该目录是package树状结构的root目录;如将com.horstmann.corejava.Employee类添加在目录home/user/classdir下,这个Employee.class类文件就必须位于子目录/home/user/classdir/com/horstmann/corejava中。

      2.将jar文件放在一个目录中,例如home/user/archives

      3.设置类路径(classpath),类路径是所有包含类文件的路径的集合。在windows中,类路径使用;分隔。

      基于一的理论,我们配置了classPath

      比如,我的类路径classpath的设置是

    .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib	ools.jar;
    

      代表我的java程序中,共享以下jar文件:dt.jar和tools.jar,以及.路径中的所有类,其中“."句号代表当前目录。

      这里没有设置类目录。

      javac编译器和java虚拟机执行的路径

      javac编译器总是在当前目录中查找文件,但java虚拟机仅在类路径中有"."目录的时候才查看当前目录。如果设置了类路径却忘了包含“.”目录,则程序可以编译,但不能运行。

      java虚拟机寻找类的方法

      e.g

        classpath配置为 c:/home/user/classdir;.;c:/home/user/archives/archive.jar,java虚拟机要找com.horstmann.corejava.Employee类文件。

        步骤如下:

          1.首先要查看存储在jre/lib和jre/lib/ext目录下的归档文件中所存放的系统类文件;

          2.如果没找到,找c:/home/user/classdir/com/horstmann/corejava/Employee.class

          3.如果没找到,找当前目录的/com/horstmann/corejava/Employee

          4.如果没找到,找c:/home/user/archives/archive.jar 中的com/horstmann/corejava/Employee.class

      编译器寻找类的方法

        太长了,反正就是有用类,就找该类的import,没找到或者找到多个就报错。

  • 相关阅读:
    Win10系统怎么彻底关闭Windows defender?
    用 winrar 解压 haozip 分卷压缩包的方法
    关闭WordPress自动保存和文章修订功能
    WordPress中Invalid argument supplied for foreach()错误原因及解决办法
    C#PDF转图片
    VS使用Nuget教程详解 Visual Studio 安装第三方的组件库
    kafka源码阅读环境搭建
    博客园主题美化
    官方文档
    [UGUI]UI特效裁剪
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/10208887.html
Copyright © 2011-2022 走看看