关于java中的classpath

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中的classpath相关的知识,希望对你有一定的参考价值。

系统属性——高级——环境变量——系统变量——新建——classpath:D:\Java\jdk1.7.0_17\lib,然后我在DOS下输入classpath,结果是“'classpath' 不是内部或外部命令,也不是可运行的程序或批处理文件。”这样是不是说明classpath没有设置对?那该怎样设置?求老师~~

你好,不是输入classpath,正确如下
首先介绍一下环境变量的设置方法:(这里以jdk1.6来安装,其他版本一样)在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。
首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需要设置三个属性“JAVA_HOME”、“path”、“classpath”,其中在没安装过jdk的环境下。path属性是本来存在的。而JAVA_HOME和classpath是不存在的。

点“新建”,然后在变量名写上JAVA_HOME,顾名其意该变量的含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径“C:/jdk1.6”。(注:
如果安装的路径不是磁盘C或者不是在jdk1.6这个文件夹,可对应修改。以下文字都是假定安装在C:/jdk1.6里面。)

其次在系统变量里面找到path,然后点编辑,path变量的含义就是系统在任何路径下都可以识别java命令,则变量值为“.;%JAVA_HOME%/bin”,(其中“%JAVA_HOME%”的意思为刚才设置JAVA_HOME的值),也可以直接写上“C:/jdk1.6/bin”

最后再点“新建”,然后在变量名上写classpath,该变量的含义是为java加载类(class or
lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar
(要加.表示当前路径)”,与相同“%JAVA_HOME%有相同意思”

以上三个变量设置完毕,则按“确定”直至属性窗口消失,下来是验证看看安装是否成功。先打开“开始”->“运行”,打入“cmd”,进入dos系统界面。然后打“java
-version”,如果安装成功。系统会显示java version jdk"1.6.0"。

确保安装在C盘文件名为jdk1.6,环境变量直接复制就可以了
,在dos界面中输入javac来查看该命令是否合法,同样输入java来查看该命令是否合法
这样环境变量就设置好了,下面进行对PATH,CLASSPTH,JAVA_HOME的讲解以下为置JAVA_HOME,CLASSPATH,PATH的目的:
1,设置JAVA_HOME:

一、为了方便引用,比如,你JDK安装在C:/Program Files/Java/jdk1.6.0目录里,则设置JAVA_HOME为该目录路径,
那么以后你要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串;
二、归一原则,
当你JDK路径被迫改变的时候, 你仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全,
某个程序找不到JDK, 后果是可想而知的----系统崩溃!
三、第三方软件会引用约定好的JAVA_HOME变量, 不然,
你将不能正常使用该软件, 以后用JAVA久了就会知道, 要是某个软件不能正常使用, 不妨想想是不是这个问题.

2,设置CLASSPATH:

这是一个很有趣,当然也比较折磨初学者的问题, 这个变量设置的目的是为了程序能找到相应的".class"文件, 不妨举个例子:
你编译一个JAVA程序---A.java, 会得到一个A.class的类文件,你在当前目录下执行java A, 将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在, 你把A.class移到别的目录下(例如:"e:/"), 执行java A,
将会有NoClassDefFindError的异常,原因就是找不到.class文件, 现在你把CLASSPATH增加为:".;e:/"再运行java A,
看看会有什么结果~~:)~~~, 一切正常, java命令通过CLASSPATH找到了.class文件!

3,设置PATH:

道理很简单, 你想在任何时候都使用%JAVA_HOME%/bin/java 等来执行java命令吗, 当然不会, 于是, 你可以选择把
%JAVA_HOME%/bin添加到PATH路径下, 这样,
我们在任何路径下就可以仅用java来执行命令了.(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序, 并且执行.)
======================错误案例NoClassDefFound:
当 Java 虚拟机或 ClassLoader
实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。

问题出在你环境变量设置错误:
上述楼主把C:/Program
Files/Java/jdk1.5.0_11/lib/dt.jar;C:/Program
Files/Java/jdk1.5.0_11/jre/lib/rt.jar放在classpath的环境变量中是正确的追问

JAVA_HOME:D:\Java\jdk1.7.0_17
classpath:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar
按您的方法设置了依旧是:

javac: 找不到文件: Text.java
用法: javac
-help 用于列出可能的选项

追答

java -version 能出来么

如果能出来,就使用cd命令进入到你Test.java文件所在的文件夹
在 javac Text.java 即可

追问

能出来。。我生成的Text.class在D:\happy中,然后在classpath中直接设置的D:\happy, java Text 就能运行了,那刚刚设的classpath:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar 就没用了呀~~那为什么设置.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/toos.jar ,有什么用么?

追答

这个是有用的你编译Text.java是要依赖这两个jar包的,只是你看不到他的隐藏作用而已

参考技术A 没事的,我也遇到这种现象,不代表没有配置成功 你打开你自己的myeclipse看看能不能运行就好了 如果能说明没问题 如果不行 那就从新配置一下就好了 参考技术B 你是不是想测试环境变量是否配置正确,测试方法可在DOS下测试java和javac

以上是关于关于java中的classpath的主要内容,如果未能解决你的问题,请参考以下文章

关于JAVA项目中CLASSPATH路径详解

关于web工程中java类如何获取webapp路径下的文件

关于VScode调试Java出现在path中找不到node和classpath不完整怎么解决?

JAVA环境变量关于

关于CLASSPATH的一点感想

关于IDEA开发环境下的Kafka+Spark Streaming的classpath配置方式