`

【J2SE】Java之Path、CLASSPATH的概念解析

    博客分类:
  • J2SE
 
阅读更多

本文转自:http://blog.sina.com.cn/s/blog_5198c7370100cxsk.html

java中的path,classpath经常容易引起混淆,现做以下总结:
     首先是JAVA_HOME环境变量,我们先来掌握这个环境变量的设置内容,JAVA_HOME这个环境变量的设置内容是JDK的安装目录,比如说您的JDK安装在d:\jdk1.6.0这个目录下,请您查看一下这个目录下是不是有一个子目录bin,bin目录中是不是有java.exe这个文件,如果是,那么您的JAVA_HOME环境变量的内容应该为d:\jdk1.6.0。那么我们设置这个环境变量的作用是什么呢?就单独的java开发而言,这个环境变量并没有任何作用,这就是很多根据书上的描述设置好之后,把一本书学完也没有用到这个变量,所以很是不理解。
    其实JAVA_HOME变量最好还是设置一下,首先,我们为了能够编译和运行java程序,需要在PATH环境变量中把java.exe所在的目录设置为PATH变量的一部分,目的是为了能够通过命令行运行javac和java命令成为可能,当你在命令行中输入javac ...或者java ...的时候,如果提示你一个错误:'javac' 不是内部命令或外部命令,也不是可运行的程序或批处理文件。这时候说明操作系统没有找到你通过命令行输入的javac这个命令,为什么呢?因为操作系统并不知道你的javac.exe这个文件在哪里,所以无法执行对应的文件。那么为了能够让操作系统找到这个可执行文件,我们就需要把javac.exe这个可执行文件所在的目录作为PATH环境变量的一部分设置起来,这样当你在命令行输入一个命令的时候,操作系统就会自动搜索PATH变量中所指定的所有目录了。在Windows系统中PATH变量中的所有路径采用分号分割,如果在Linux系统中采用冒号分割。另外说明一点,如果你设置好了环境变量,在命令行中还是出现同样的错误,那么有两种可能,一种就是你的设置不正确,另一种就是你的设置没有生效,一般你可以关闭命令行窗口再重新打开就可以了。这对这个设置,以刚才的目录为例,那么PATH变量中的内容就是...;d:\jdk1.6.0\bin,这时候我们可以借用已经设定过的JAVA_HOME,将PATH的内容修改为:...;%JAVA_HOME%\bin,这样的设置有一定的好处,当你的系统中重新安装JDK,并改变过目录的话,你只要修改JAVA_HOME的内容就可以了,PATH则不需要修改。此外,JAVA_HOME变量还会有一些其他用途,比如Eclipse这个IDE,它本身是由java程序编写的,那么在运行的时候必然需要虚拟机的存在,所以Eclipse在启动时需要查找虚拟机,如果有JAVA_HOME这个变量,那么Eclipse就会利用这个变量找到虚拟机的路径。所以虽然开始JAVA_HOME环境变量可以不设置,但是还是建议大家为以后考虑而设置上。
    我们继续来谈论CLASSPATH的问题,很多书上在讲解java程序的时候建议大家设置CLASSPATH这个环境变量,我们这里不建议大家设置。原因我们会在稍后的时候看到。讲到CLASSPATH,我们首先来看编写java程序时一直在用的两个命令javac和java。
    javac的命令语法是这样的:
        javac <选项> <源文件>
    我们常用的情况是这样的:
        javac -classpath <类路径>  <要编译的java源文件>
    这里的类路径输入什么呢?这里的类路径是指要编译的java源文件中所用的非java的基础API中的类在那个目录下,路径可以是多个目录,用分号隔开来。比如说我们要编译App.java这个文件,而这个文件中用到了com.util这个包中的MyDate这个类,现在我们假设MyDate这个类存在目录是:d:\mylib\com\util\MyDate.class,那么我们如何编译App这个类呢?我们的命令如下:
    javac -classpath d:\mylib  App.java
    注意这里的classpath的内容,我们只是指定路径到package所在目录,并不能把package一起指定进去,而且MyDate.class必须在com\util这个目录中,因为这个类定义了package为com.util。好了现在你对javac中的classpath明白了吗?
    我们再来看java这个命令,这个命令的语法是这样的:
    java [选项] 类 [参数]
    比如说以上面的例子,我们假设App这个类位于com.app这个package中,它的存放目录是:d:\dev\myapp\com\app\App.class,那么我们该如何运行这个类呢?命令如下:
    java -classpath d:\dev\myapp;d:\mylib com.app.App
    从命令中我们可以看到,在classpath后面我们指定两个目录,分别是App这个类的package所在的目录和MyDate这个类的package所在的目录,这里的类路径要给定的是要运行的类和这个类用到的所有类的package所在的目录,多个目录之间用分号隔离开来,最后指定要运行的类的时候必须加上package。
    好了到这里你应该彻底掌握了编译java程序和运行java程序的诀窍了吧。如果我们在系统环境变量中设置了CLASSPATH的话,在命令行中通过java运行的时候如果再不指定CLASSPATH参数,那么就会导致java虚拟机只是按照CLASSPATH环境变量中的目录搜索类,而不在你的当前目录下搜索类,结果自然会出现Exception in thread "main" java.lang.NoClassDefFoundError,所以当你看到这个错误的时候请查看一下你的系统环境变量,如果没有设置CLASSPATH,那么在检查一下你的当前目录。为了确保万无一失,按照上面讲述的例子进行操作是不会发生任何错误。
--------------------------------------------------------------
附:本地工作环境配置
JAVA_HOME:
D:\Program Files\Java\jdk1.6.0_13

Path:
%M2_HOME%\bin;%JAVA_HOME%\bin;d:\oracle\product\10.2.0\db_1\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;d:\Program Files\Tencent\QQPCMgr\6.5.2121.201;D:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\Microsoft SQL Server\90\Tools\binn\

CLASSPATH:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\jsr173_1.0_api.jar

M2_HOME:
D:\apache-maven-3.0.4

ORACLE_BASE:
D:\oracle

ORACLE_HOME:
D:\oracle\product\10.2.0\db_1\
分享到:
评论

相关推荐

    Java简明教程 习题解析

    - 配置环境变量,包括`PATH`和`CLASSPATH`,确保Java编译器和解释器可以找到。 - 使用文本编辑器或IDE编写Java源代码。 - 使用`javac`命令编译源代码,生成`.class`字节码文件。 - 运行字节码文件,使用`java`...

    J2SE配置

    以下是对这些知识点的深入解析: ### 1. JDK的安装与环境变量设置 JDK是Java Development Kit的简称,是Java开发的核心组件,包含了Java运行环境(JRE)、Java工具和Java基础类库。安装JDK并正确设置环境变量是...

    J2EE和J2se总结资料

    通过对J2EE和J2SE的学习,我们可以了解到Java平台的强大之处在于其高度模块化的设计。无论是动态加载机制、类文件查找原理还是JDK与JRE的区别,都是构建高效、可维护的Java应用程序的基础。掌握这些基础知识不仅有助...

    java核心笔记

    【Java核心笔记】深入解析 Java作为一种广泛应用的高级编程语言,以其面向对象、跨平台、分布式、多线程和解释性等特性深受开发者喜爱。本文将详细探讨Java的基础知识,包括开发环境的设置、基本语法、变量、运算符...

    java入门与加深FAQ.txt

    对于初学者来说,推荐使用 JDK 加上文本编辑器,如 Notepad++ 或 Sublime Text,并熟悉路径设置(`path`)和类路径设置(`classpath`),理解包(`package`)的概念。此外,还应该熟悉 `javac` 和 `java` 命令的使用...

    java使用Zxing包生成和识别二维码

    在Java项目中使用Zxing进行二维码生成之前,首先需要将Zxing的核心库(core.jar)添加到项目的类路径(classpath)中。如果使用Maven或Gradle等构建工具,则可以通过添加相应的依赖来引入Zxing库。例如,在Maven项目中...

    JAVA学习笔记.docx

    JAVA学习笔记涵盖了从开发环境配置到基础概念的深入讲解,主要知识点包括: 1. **JAVA开发环境**:Eclipse是一款广泛使用的JAVA集成开发环境(IDE),对于初学者来说,需要下载并配置它来编写和运行JAVA程序。配置...

    Java选择题武汉大学JAVA基础.pdf

    类路径(classpath)是Java运行时查找类文件的路径。环境变量PATH是系统用来指定可执行文件位置的变量。 5. Java的运算符 Java中的运算符包括算术运算符(如+,-,*,/),关系运算符(如==,!=,&gt;,&lt;),逻辑...

    java基础知识大总结

    Java基础知识大总结涵盖了Java编程语言的核心概念和结构,为初学者提供了一个全面的参考资料。下面将详细解析这些知识点: 1. JVM、JRE和JDK的区别: - JVM(Java Virtual Machine)是Java虚拟机,它是Java程序跨...

    Java新手练手实验指导

    ### Java新手练手实验指导知识点解析 #### 一、熟悉并配置 Java 的运行环境 **实验目的** 1. **掌握安装 J2SE 开发工具的方法:**初学者首先需要了解如何下载并安装 Java 开发工具包 (JDK),通常推荐官方渠道获取...

    Java基础(核心所在)

    1. **环境配置**:安装JDK并设置环境变量,如JAVA_HOME、PATH和(在某些情况下)CLASSPATH。 2. **编写源代码**:使用文本编辑器或IDE创建.java文件,按照面向对象的原则编写类和方法。 3. **编译**:使用javac命令...

    《Java编程基础知识点汇总及习题集》--答案

    - 建立Java开发环境,安装JDK后,通常需要设置环境变量**path**和**classpath**。 - 编写一个Java源程序文件名为`Test.java`,则编译该源程序的命令为**javac**,运行该程序的命令为**java**,生成文档注释的命令...

    chc java笔记1

    Java技术体系包括J2EE(Java企业版)、J2SE(Java标准版)和J2ME(Java微型版)。随着智能手机的发展,J2ME在手机应用中的使用逐渐减少,但仍然在其他手持设备如POS机、餐馆点菜机等领域发挥作用。 Java语言有多个...

    电子版corejava

    - 在Linux环境下,需设置`JAVA_HOME`、`CLASSPATH`和`PATH`环境变量,其中`JAVA_HOME`指向JDK的安装目录,`CLASSPATH`用于指定类库的路径,`PATH`则包含JDK的`bin`目录,以便系统能找到Java命令。 - 在Windows环境下...

    java基础课程.pdf

    - **环境变量配置**:设置JAVA_HOME(非必需,但推荐)、PATH(必需)和CLASSPATH(非必需,若设置需包含当前路径)。 - **JDK目录结构**:了解bin、lib、demo、jre和src目录的作用及其包含的关键工具和资源。 综上...

    Java-SE 罗召勇的pdf

    - Java SE:J2SE的后续版本,J表示“Java”,SE表示“Standard Edition”。 2. **开发工具** - `javac`:Java编译器,将源代码编译为字节码(.class文件)。 - `java`:Java解释器,用于运行已编译的类或应用...

    java基础总结大全(笔记).doc

    Path配置了Windows系统中可执行文件的搜索路径,而Classpath则是Java类文件的搜索路径,确保JVM能找到所需的类文件。 变量是程序中存储数据的基本单元,定义变量是为了存储和重复使用同类型的常量。在逻辑运算中,`...

    java语言的岗前培训

    - **环境变量**:尤其是`PATH`和`JAVA_HOME`,设置这些环境变量对正确运行Java程序至关重要。 3. **Java编程过程**: - **编辑工具**:可以使用各种文本编辑器或集成开发环境(IDE),如Notepad++, Eclipse或...

    第01讲 Java概述.ppt

    安装和配置Java开发环境时,需要设置环境变量,如JAVA_HOME指向JDK的安装目录,Path添加JDK的bin目录,CLASSPATH定义类库路径。这些设置使得操作系统能够找到Java相关的工具和类库。 总的来说,Java以其强大的跨...

    Java使用Zxing包制作二维码.doc

    Java 使用 Zxing 包制作二维码是指使用 Java 语言和 Zxing 库来生成和解析二维码的过程。Zxing 库是 Google 提供的关于条码(一维码、二维码)的解析工具,提供了二维码的生成与解析的方法。 在使用 Zxing 库生成...

Global site tag (gtag.js) - Google Analytics