zoukankan      html  css  js  c++  java
  • 重学JAVA基础(一):PATH和CLASSPATH

    我想大多数Java初学者都会遇到的问题,那就是怎么配置环境,执行java -jar xxx.jar  都会报NoClassDefFindError,我在最开始学习的时候,也遇到了这些问题。

    1.PATH
        path是路径的意思,我们直接在控制台运行一个程序时候,系统都会在指定的path下去找有没有这个程序,如果有就执行,没有就报错或者提示。
        在windows系统中,使用echo %PATH%来查看PATH下的路径
     
      在linux系统中,使用 echo $PATH
        
        我们将java的bin目录加入path后,就可以直接在控制输入java命令进行执行了,不必在进入java的bin目录中执行相关java命令。
     
     
    2.CLASSPATH
        通过设置path,能在任何目录下执行java命令了,但是jvm怎么知道我要执行的class类在哪儿呢?这就要通过设置classpath来解决了。
        几种设置classpath变量的方式:
        1).通过环境变量窗口设置
        2).命令行设置
            set CLASSPATH=
        3).执行java命令时设置
            java -classpath=
        我们最常用的配置是设置classpath=.;  表示在当前目录下查找class。以前版本还得设置lib和lib ools.jar,现在我用的JDK1.8发现自己可以不用设置了,系统帮你设置和完成class类的查找。
     
        我们可以通过下面的程序,来查看系统默认加载了些什么jar
        URL[] urls=sun.misc.Launcher.getBootstrapClassPath().getURLs();
         for (int i = 0; i < urls.length; i++) {
           System.out.println(urls[i].toExternalForm());
         }
        
        rt.jar是java很核心的jar包,基本包含了我们通常使用的基础类
     
        CLASSPATH对于JVM就相当于PATH对应于操作系统,操作系统要在指定的路径找到程序,而JVM要在指定的路径找到CLASS类
            
  • 相关阅读:
    ASPNET5应用程序启动
    DNX概述
    MySQL数据库管理员密码忘记如何修改?
    Rsync数据复制软件应用
    Centos7系统中Mysql数据库的安装
    基于Haproxy+Keepalived实现Haproxy的高可用
    源码编译安装Mariadb数据库的时候报错,/usr/bin/c++ doesn't support -std=c++11 or -std=c++0x, you need one that does.
    mariadb数据库的安装
    更改Ubuntu和Centos系统中的镜像源
    快速搭建ELK日志分析系统
  • 原文地址:https://www.cnblogs.com/TomSnail/p/4379801.html
Copyright © 2011-2022 走看看