• 【待解决】关于CLASSPATH的显示问题


    CLASSPATH? 环境变量?

    环境变量CLASSPATH是操作系统JVM的搜索路径,它可以让JVM依据这些路径找到可执行文件.class文件,就相当于环境变量PATH对操作系统windows的作用一样。

    既然如此,那么我们能不能读到CLASSPATH中的那些路径?

    先看看我们是怎么读到环境变量PATH的:

    • 第一种方法

    在cmd中输入echo %PATH%

    • 第二种方法

    在计算机右键属性->高级系统设置->系统属性->环境变量里查看,PATH在用户变量和系统变量里都有显示,可以双击查看具体路径(环境变量的实现是以“系统环境变量再‘附加’用户环境变量”的形式进行的)。

    再试试能不能按照我们读取PATH的方法读取CLASSPATH

    • 第一种方法尝试

    在cmd中输入echo %CLASSPATH%

    结果原样照映出%CLASSPATH%

    • 第二种方法尝试

    在计算机右键属性->高级系统设置->系统属性->环境变量里查看

    结果:没有查找到环境变量CLASSPATH

    那到底环境变量CLASSPATH存不存在呢?

    • 资料上的那些蛛丝马迹
    1. JVM预设的CLASSPATH就是读取目前文件夹中的.class,如果自行指定CLASSPATH,则以你指定的为主

    这说明CLASSPATH里的内容是.(当前目录)?还是如果CLASSPATH内容为空,则默认CLASSPATH读取当前目录下的.class?

    1. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。(网址:环境变量path和classpath的作用是什么?)

    这说明了CLASSPATH里面没有内容,需得自己添加了以后才有么?

    1. 书上P34使用javac -verbose -sourcepath src -d classes srd/main.java时,对结果截图的描述:

    然后搜索CLASSPATH中是否有已编译的类位码。你可以发现,其实默认搜索位码的路径包括许多默认的JAR文档,像是rt.jar等。留意最后那个“.”,由于没有指定-classpath(-cp),默认会搜索目前路径。

    (而在后面指定了-cp是classes后,最后的那个“.”变为了classes)

    结合截图可以说明,图2.20中CLASSPATH显示的路径只有两类,一类是JAR文档,一类是当前目录.

    而后又在这一小节的提示里提示到

    “JVM默认的类搜索路径,也就是JAR文档的搜索路径...(这)与类加载器有关”

    而又由前面可以得知,JAR文档的搜索路径在CLASSPATH里,所以提示里的这句话是告诉我们想要查找到CLASSPATH究竟在哪可以看到内容,得先理解类加载器、JVM默认等概念么?

    (问题等待解答)

    当前猜测

    预设的CLASSPATH里存在两类路径,一类是默认的JAR文档,一类是当前目录路径。

    或许能在JVM里用某个方法把CLASSPATH里的内容显示出来。

    主要疑惑

    CLASSPATH在哪可以看到它的内容呢?(能明确指出它就是CLASSPATH,里面有内容,能对其进行修改)

    附:发现CLASSPATH的一个特点

    若用-cp指定了某个目录,则在该命令行执行过程中这个目录会暂时加到CLASSPATH里路径的最后面。如果没有指定则将当前目录(.)加到CLASSPATH路径后面(猜测是一开始CLASSPATH里就有.)

  • 相关阅读:
    USACO 3.3 A Game
    USACO 3.3 Camelot
    USACO 3.3 Shopping Offers
    USACO 3.3 TEXT Eulerian Tour中的Cows on Parade一点理解
    USACO 3.3 Riding the Fences
    USACO 3.2 Magic Squares
    USACO 3.2 Stringsobits
    USACO 3.2 Factorials
    USACO 3.2 Contact
    USACO 3.1 Humble Numbers
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/6491946.html
Copyright © 2020-2023  润新知