‘壹’ java的环境变量classpath该怎么设置呢
java的环境变量classpath的设置方法:
1、在我的电脑界面,鼠标右键点击“此电脑”。
‘贰’ 为什么java调用外部类时编译和运行都需要使用-classpath添加路径
javac -classpath的使用:
javac:如果当前你要编译的Java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。
(1).绝对路径:javac -classpath c:/junit3.8.1/junit.jar Xxx.java
(2).相对路径:javac -classpath ../junit3.8.1/Junit.javr Xxx.java
(3).系统变量:javac -classpath %CLASSPATH% Xxx.java (注意:%CLASSPATH%表示使用系统变量CLASSPATH的值进行查找,这里假设Junit.jar的路径就包含在CLASSPATH系统变量中)
‘叁’ 请问为什么java已经设置好PATH和CLASSPATH了,为什么在cmd中运行时还是要先进入当前目录呢
classpath只能指定class文件,不能指定java文件,所以编译的时候是要切换到java文件所在的目录的
‘肆’ 环境变量classpath不设置java可以运行吗
可以啊,不过麻烦的就是如果你用java 命令运行的话,你得在cmd窗口中把路径切换到jdk解压后的文件路径,然后用 java 全路径的java文件名称 这样去运行,如果是用Eclipse的话,可以在首选项中配置,打开首选项页面,在搜索框输入jre,就可以找到配置的地方了
‘伍’ JAVA 的classpath
classpath指的是Java进行编译,运行时需要用到的jar包位置.
一般设置为classpath= ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar"就可以了
注意是 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
最前面有个点,不要把点漏了。
下面是网上摘的一些比较好的讲解,希望对你有所帮助:
CLASSPATH环境变量。作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。
CLASSPATH是什么?它的作用是什么?
它是javac编译器的一个环境变量。
它的作用与import、package关键字有关。
当你写下improt java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦 :) 如果java.util这个package在c:\jdk\ 目录下,你得把c:\jdk\这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找CLASSPATH所指定的目录,并检视子目录java\util是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!
CLASSPATH有点像c\c++编译器中的INCLUDE路径的设置哦,是不是?当c\c++编译器遇到include <iostream>这样的语句,它是如何运作的?哦,其实道理都差不多!搜索INCLUDE路径,检视文件!
当你自己开发一个package时,然后想要用这个package中的类;自然,你也得把这个package所在的目录设置到CLASSPATH中去!
CLASSPATH的设定,对JAVA的初学者而言是一件棘手的事。所以Sun让JAVA2的JDK更聪明一些。你会发现,在你安装之后,即使完全没有设定CLASSPATH,你仍然能够编译基本的JAVA程序,并且加以执行。
‘陆’ java中如何设置classpath.
工具:电脑
步骤:
1、点击 此电脑,然后选择属性
‘柒’ ClassPath详解
使用JAVA开发或运行基于JAVA编写的程序,在安装JDK之后,一般需要配置如下几条环境变量(以Windows为例):
那么,它们的作用是什么呢?
JAVA_HOME 该变量指明了JAVA运行环境的安装路径。它和JAVA之间,除了字面相似度高外,没有什么联系。之所以配置该变量大约有三点原因:
如果确定没有应用依赖该变量,甚至可以不配置。但基于前两个优点,一般不建议这么做。
CLASSPATH 该变量指明JAVA运行环境JRE搜索 .class 文件的路径。
PATH 该变量指明操作系统查找可执行程序的路径。该变量由操作系统使用,配置 %JAVA_HOME%in 以便快捷访问该目录下如 java 、 javac 等命令行和其他JDK工具。
明白了这三个变量的用途,可知对于JAVA程序最重要的是 ClassPath 环境变量,因为它指明JAVA程序搜索第三方和用户自定义类的路径,如果不正确配置,JAVA程序将不能正常运行。
那么如何正确配置 ClassPath 呢?有如下四种方式:
其中第三种方式和第四种方式可独自配置单个JAVA应用而不影响其他JAVA应用,官方推荐使用第三种方式配置 ClassPath 。具体的配置方法如开篇所述,形式类似如下:
每个路径之间使用英文分号‘;’进行分隔(linux环境下则使用英文冒号‘:’分隔)。这个例子中的单个路径都是文件夹,除此之外,单个路径还可以是特定的jar包和zip包路径。假如一个类文件的路径如下
如果该类位于 com.zdb 包下,那么正确设置的 ClassPath 为:
如果该类引用了如下的第三方jar包:
此时 ClassPath 为:
如果该类引用了多个第三方jar包:a.jar b.jar c.jar,此时 ClassPath 为:
也可以使用通配符‘*’表示为:
需要注意的是:
针对第二点,上一个例子在程序运行时,使用系统属性 java.class.path 获得的类路径可能为(注意abc的顺序已改变):
这个顺序对于JVM加载类颇为重要。假设特殊情况下,b.jar和c.jar中都含有同包名且同类名的一个类,那么JVM当查找到c.jar时发现该类后,将不会继续查找b.jar。如果JAVA应用依赖于jar包的加载顺序,那么需要明确指定jar包顺序,而不能使用通配符。
针对第三点, manifest 文件配置类路径和前三种方式稍有不同,形式为:
注意到,使用空格分隔各个路径而不是分号‘;’或冒号‘:’。另外,当类路径过多而需要换行时,从第二行开始,必须以两个空格开头。
附:
JAVA类路径官网介绍
Manifest文件类路径说明
一个jar包加载顺序引发的BUG
‘捌’ java中的 classpath有什么用,我配完环境,没设置这个变量,程序也能运行啊! 求大神详细解释一下!
classpath是java环境变量的路径,它的作用其实就是设定java开始import包时所需要的路径
当你在进行java工程是会导入许多包,如:import java.util.*。举例说明,如果import java.util这个包在C盘的JDK目录下,那么就要把"C:\JDK"设到classpath里面去。当你在import java.util.*时,这句语句就会去找寻classpath下是否有java.util存在,如果没有就会报错。
与C语言进行比较的话,它的作用可类似于include。
没设置classpath就能跑程序的原因是安装jdk时会把java,javaw等放到system32目录去,jre也会有一些在注册表里,所以可以运行java,但不能用javac(因为它是java编译器,在jdk里),eclipse会自动找到jdk的home,所以才可以用编译和运行,IDE基本都不用配环境变量,不过离开了IDE就无法在cmd里javac
‘玖’ java -classpath xxx 运行问题
估计是你的Ccc.jar没找到,用绝对路径试一下。。