
在我的电脑点击右键——〉选择属性
在d出界面上 :选择高级——〉环境变量
点击环境变量界面的系统变量栏的“新建”按钮
在上面填写变量名为:JAVA_HOME,变量值为:C:\Program Files\Java\jdk160_10 点击确定按钮。
再次点击环境变量界面的系统变量栏的“新建”按钮。 在d出的窗口中填写变量名为:classpath,变量值为:; ,注意是点和分号,
点击确定按钮。
在系统变量里面找到“Path”这一项,然后双击它,在d出的界面上,在变量值开头添加如下语句“%JAVA_HOME%\bin;”,注意不要忘了后面的分号,
然后点击“编辑系统变量”界面的确定按钮。
(7)点击“环境变量”界面的确定按钮。
(8)点击“系统属性”界面的确定按钮。Java 开发环境的设置就完成了。
那么为何要设置这些环境变量呢?
JAVA_HOME:配置到 JDK 安装路径。注意:变量名必须书写正确,全部大写,中间用下划线。有以下好处:
为了方便引用。比如,JDK安装在C:\Program Files\Java\jdk160_10 目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候,只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串。
归一原则。 当JDK路径被迫改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK,后果是可想而知。
为第三方软件服务。基于 Java 的第三方软件会引用约定好的JAVA_HOME变量,那么它们能够找到 JDK 的位置,不然, 将不能正常使用该软件。如果某个软件不能正常使用,不妨想想是不是这个问题。
PATH:提供给 *** 作系统寻找到 Java 命令工具的路径。通常是配置到 JDK 安装路径\bin。完成配置以后,使用编译器和解释器就会很方便,可以在任何路径下使用bin目录下的Java命令,而不需要写出完整的路径:C:\Program Files\Java\jdk160_10 \bin\java 。
CLASSPATH:提供程序在运行期寻找所需资源的路径,比如:class类文件、文件、等等。在 windows环境下配置“”代表当前路径,那么在执行java命令时,就会先到当前路径寻找class类文件。这个配置对于Java初学者比较难理解,我们在后面的Java运行过程中,再详细体会。
注意:在 windows *** 作系统上,最好在CLASSPATH的配置里面,始终在前面保持“;”的配置。
设置环境变量
在java 中需要设置三个环境变量(15之后不用再设置classpath了,但个人强烈建议继续设置以保证向下兼用问题)
JDK安装完成之后我们来设置环境变量:右击“我的电脑”,选择“属性”,选择“高级”标签,进入环境变量设置,分别设置如下三个环境变量:
(1)配置path变量:
为什么要配置path变量?因为电脑系统将根据该变量的值找到java编程中需要的一些程序,比如javacexe、javaexe、javahexe等等,其中javacexe程序是用于编译java源代码,javaexe程序是用于执行后缀为class的代码。
如何配置path变量?
path变量一般电脑系统都已经创建好了,所以不用新建该变量,只需在系统变量里选中到path变量,点击“选择” ->“编辑",需要注意的是,不要随便删除方框里原有的其他path值,而是先在那一大串值之后,添加一个分号,再把C:\Program Files\Java\jdk150_17\bin填上去。下面列出其键值对:
变量名: PATH(不区分大小写但建议使用大写)
变量值: C:\Program Files\Java\jdk150_17\bin
(2)配置classpath变量:
为什么要配置classpath变量?配置classpath变量,才能使得java解释器知道到哪里去找标准类库,这些标准类库是别人已经写好了的,我们只管使用。比如我们常用到javalang包中的类,在配置classpath变量后被设为默认导入,所以在写程序时就不用import这个包了。那么这些标准类库在哪呢?在以JDK的lib目录下以jar为后缀的文件中:一个是dtjar,一个是toolsjar,这两个jar包都位于C:/jdk160/lib目录下,所以通常我们都会把这两个jar包加到我们的classpath环境变量的值为:; C:\Program Files\Java\jdk150_17\\lib\toolsjar; C:\Program Files\Java\jdk150_17\\lib\dtjar;
如何配置classpath变量?
在系统环境变量那一栏中点击新建classpath ,具体过程省略,下面只列出其键值对:
变量名: CLASSPATH
变量值: ;%JAVA_HOME%\lib\toolsjar;%JAVA_HOME%\lib\dtjar;
(注意,CLASSPATH最前面是有个 “”的,表示当前目录。用两个%包围JAVA_HOME这个变量的意思是引用变量的值,当然如果你不想这样做,也可以这样配置classpath的值为:;%JAVA_HOME%\lib\toolsjar;%JAVA_HOME%\lib\dtjar; 也就是用JAVA_HOME变量的值替换%JAVA_HOME%);
(3)配置JAVA_HOME变量:
为什么要配置classpath环境变量?一是为了方便引用,比如,JDK安装在C:\Program Files\Java\jdk150_17目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, 当JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃! 三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件。
如何配置JAVA_HOME变量?
在系统环境变量那一栏中点击新建JAVA_HOME (JAVA_HOME指向的是JDK的安装路径),变量的值实际上是JDK安装路径的根目录。具体过程省略,下面只列出其键值对:
变量名: JAVA_HOME
变量值:C:\Program Files\Java\jdk150_17
测试JDK是否安装成功
在运行中输入cmd
然后输入java –version
看看是否能显示出您所配置的java版本
你没有理解到classpath的真正含义,这个变量的含义是在classpath所指定的目录下面去寻找class文件,注意是寻找后缀为class的文件。比如,你在E盘编写了一个java程序,保存为ajava,这时你在cmd中输入java a这样就生成了一个aclass的文件,然后你把这个文件剪切到D盘去,如果这时你在cmd中输入javac aclass那么肯定会出现找不到aclass文件的错误。但如果你在环境变量中的classpath变量后面增加了D:\这么一句的话,这个语句就能执行。你可以看到classpath的真正作用,只是搜索class文件所在的位置而已。
因此classpath与你说的javalang包是没有任何关系的。如果你要使用java自带包中的内容,只要在程序中使用import语句把相应的包包含进来就可以了。而javalang包在java中是默认使用import语句包含进来了的,因此即使程序中没有import javalang;的语句,但java还是包含进来了的。因此你在程序中可以使用System类进行输出,这与classpath毫无关系。
您好,jdk16以上就不需要配置classpath了;系统会自动帮你配置好;
您只需要配置JAVA_HOME和Path就可以了
例如我的配置:
JAVA_HOME:E:\Java\jdk170\
Path后追加;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
请采纳,谢谢。
查看文章 JAVA中classPath全面解析 2009年08月22日 14:15
# 摘要
Class Path是Java执行时期环境用来搜寻类别与其它资源所用之路径。Class Sear
ch Path(通常使用Class Path这个缩写名称比较为人所知)可以在呼叫SDK工具程
式时使用-classpath或者是设定CLASSPATH环境变数。建议是使用-classpath选项,
因为您可以独立的为每一个应用程式设定,而不会影响其它的应用程式,且不会有
其它的应用程式来改变这个值。
1 C:> sdkTool -classpath classpath1;classpath2
-或-
1 C:> set CLASSPATH=classpath1;classpath2
在这边:
sdkTool:是一个命令列工具程式,像是java、javac 或 javadoc
classpath1;classpath2:指向jar、zip或 class档案的Class Path,每一个cl
asspath都应以档名或目录名称(这与您所要设定的classpath有关)作结束。
对於一个包括class的jar或zip档案而言,class path要以zip或jar档案的
名称作结束。
对於一个未命名的package而言,class path要以包括所有class档案的目录作结
束。
对於一个已命名的package而言,class path要以包括"根"package(完整packag
e名称的第一个package)的目录名称作结束。
多个路径项目要以 分号 作区隔,使用set指令,重要的是等号两边不可有空白。
预设的class path是目前的目录,设定CLASSPATH变数或使用-classpath命令列选项
时会覆盖这个预设,所以如果您要在目前的搜寻路径中包括目前的目录,您必须在
新设定中包括"" 。
即不是目录也不是文件档案(zip或java)的classpath会被忽略。
# 说明
class path告诉SDK工具程式与应用程式要到哪边寻找第三元件(third-party)与
使用者定义的classes,也就是它们非Java延伸套件或非Java平台的一部份。在您使
用javac编译器编译类别时,需要使用class path来找出任何所需的套件 -- 预设是
目前的目录,以方便找到这些类别。 Java2 SDK、JVM与其它的SDK工具藉由搜寻Ja
va平台、classes、其它延伸classes与class path来找到所需的classes,以这个顺
序(要瞭解搜寻策略的细节,请看如何寻找Classes, How Classes Are Found),
大部份应用程式所用的类别库就可以利用延伸套件机制(extensions mechanism)
,在您载入一个不在目前目录的类别或它的其它子目录且它们不在伸延伸套件机制
中时,您所要作的就是设定class path。
如果您从旧版本的SDK升级上来,在您的启动设定中可能包括已经不再使用的CLASS
PATH设定,您必须将这些非特定应用程式的设定移除,像是classeszip,一些使用
到Java虚拟机器的第三元件应用程式可能会更改您的CLASSPATH环境变数,以将它们
所使用的程式库包括进去,这些设定则可以保留。
在您要求JVM或其它SDK工具程式时,您可以在使用Java工具程式时藉由-classpath
选项来改变class path,或是使用CLASSPATH环境变数来指定。建议是使用-classp
ath选项会比设定CLASSPATH环境变数来得好,因为您可以为每一个应用程式分别设
定,而不会影响其它的应 用程式,而其它应用程式也不会改变这个值。
Classes可以被储存在目录(资料夹)或是在文件档案(archive files),Java平
台的classes是被储存在rtjar,要瞭解文件档案的细节或是class path如何运作的
资讯,请看看稍後小节的 "瞭解class path与package名称"。
重要、注意:一些旧版本的JDK软体在预设的class path中包括了<jdk-dir>/class
es项目,这些目录的存在是为了被JDK软体使用,而不应被应用程式classes使用。
应用程式类别应该被放在JDK目录结构之外的其它目录,用这种方式,新的JDK就不
会强迫您重新安装应用程式classes,为了要与旧版本相容,必须使用<jdk-dir>/c
lasses目录作为类别库的的应用程式,在目前的版本也可以运作,但不保证在未来
的版本中仍可以运作。
# 使用SDK工具程式的-classpath选项
SDK工具程式 java、jdb、javac与javah拥有一个-classpath项目,当执行工具程式
时,它用於取代由CLASSPATH环境变数所设定的路径,在改变class path设定时,这
是个建议使用的选项,因为每一个应用程式可以拥有自已所需的class path,而不
会与其它应用程式相互干扰。
执行时期工具程式java也有一个 -cp 选项,这个选项是-classpath的缩写名称。
对於一些相当特殊的例子来说,java与javac都拥有一些项目可以让您改变它们用来
找到专属类别库的路径,然而绝大多数的使用者从未需要使用这些项目。
# 使用CLASSPATH环境变数
一般而言,建议您使用-classpath命令列选项,就如同上面所提过的,这个小节将
告让您如何设定CLASSPATH环境变数,如果您想这麼作的话,或者是想清除之前安装
所留下的设定。
设定 CLASSPATH:
CLASSPATH环境变数可以藉由set指令来修改,格式是:
1 set CLASSPATH=path1;path2
路径应该以磁碟机代号开始,例如C:\,用这种方式,即使您切换至另一个磁碟机也
可以找得到classes。(举个例子来说,假如路径项目以斜线开始而您在磁碟机D:,
那麼classes将会预期是在D:,而不是C:)
清除 CLASSPATH:
如果您的CLASSPATH环境变数已经被设定为某个值,但是并不正确,或者是您的启动
档案或是命令稿被设定了错误的路径,您可以藉由以下来取消CLASSPATH的设定:
1 C:> set CLASSPATH=
这个指令只取消目前的命令列提示视窗CLASSPATH设定,您应当删除或修正您的启动
设定,以保证您在下一次 *** 作也会有正确的CLASSPATH设定。
改变启动设定:
如果CLASSPATH被设定於系统启动时,设定的地方则视您所使用的作业系统而定:
作业系统方法:
Windows 95与98 检查autoexecbat中的set指令
其它(Windows NT、Windows 2000、)使用控制台中的系统工具来设定CLASS
PATH变数
# 瞭解class path与package名称
Java的classes被组织为packages,它们对应於档案系统的目录结构,但是不像档案
系统,每当您指定一个package名称时,您指定整个package名称而不是部份名称,
例如,javaawtButton的package名称是使用javaawt来指定。
例如,假设您要Java执行环境找到一个在 package名称 utilitymyapp 中名叫Coo
lclass的class,假如该目录的路径是C:\java\MyClasses\utility\myapp,您要设
定class path以包括 C:\java\MyClasses。
要执行这个应用程式,您可以使用下面的JVM指令:
1 c:> java -classpath C:\java\MyClasses utilitymyappCool
当应用程式执行时,JVM会使用class path设定来找到任一其它被定义於utilitym
yapp package(它被Cool类别使用)中的类别。
注意在指令中被指定的整个package名称,这是不可能的,例如,设定class path包
括C:\java\MyClasses\utility并使用指令java myappCool,这麼作并不会找到cl
ass。
(您可能会想是什麼定义了一个class的package名称,答案是package名称是class
的一部份,而且不可被修改,除非重新编译)
注意:一个package指定机制的有趣的结果是,同一个package中的部份档案可以存
在於不同的目录,对於每一个class而言,package名称将会相同,但是每一个档案
的路径将会以class path中不同的目录开始。
目录与文件档案(archive files):
当classes被储存在目录(资料夹),像是c:\java\MyClasses\utility\myapp,那
麼class path项目指向包括package名称第一个元素的目录(在这个例子中是c:\ja
va\MyClasses,因为package名称是utilitymyapp)
但是当classes被储存在文件档案时(azip或jar档案),class path项目就是指
向且包括zip或jar的档案,例如,使用在jar档案中的类别库,指令会像是:
1 C:> java -classpath C:\java\MyClasses\myclassesjar utilitymyappCool
多个指定:
要寻找C:\java\MyClasses中与C:\java\OtherClasses中的classes,您可以这麼设
定class path:
1 C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses
注意两个路径是以分号作区隔。
指定顺序:
指定多个class path项目的顺序很重要,Java解码器(interpreter)会以class p
ath变数 中的顺序来於目录中寻找classes,在上面的例子中,Java解码器首先会在
目录C:\java\MyClasses中寻找所需的类别,只有在它於该目录中找不到适当名称的
类别时,解码器才会於C:\java\OtherClasses目录中寻找。
///////////
话说回来,
我们有没有办法, 将一些常用的 jar file 放到一个目录中 ex: commons-lib\
透过一个程式来自动 import commons-lib 之下的所有 jar
类似 tomcat 我们只要放到 lib 中, 程式会自动 import
就可以 import and compile 了 ^^~
我想这是可行的
但是现实中, 我们还要去判断重复的 class 该如何去设定
看来, 要去 trace tomcat sourcecode 并且修改 ^^~
//////////////
javacexe有一个参数-extdirs可以下, 我看它的说明
很像是下了这个就可以做到自动import指定目录下的jar档吧
不过javaexe没有
///////////
LoadClass
LoadLibrary
so many so on
JDK allows compile at runtime
/////////////
dear biology
我要的不是 LoadLibrary , 你这样还是需要指定你要哪个 library
应该是说, 我想要的是只要将相关的 jar file 放到一个指定的目录
可以少去 complie 及 run 时候不需要设定 CLASSPATH
////////////////////
刚刚测试了一下 ClassLoader 他可以把我们想要的 jar 档全部载入 jvm 但是有
个小问题 那就是 ClassforName(String) 这一个不一定会找到我们要的 class
需要利用 classforName(className, initialize, classloader) 但是需要
先指定 classloader 这个是个问题
原因是 ClassforName(string) 会取代成 ClassforName(string, true, curren
tClassclassloader) 如果那个 classloader 本身(还有 parent classloader
)没有 这特定 library 存在, 那就无法抓到指定的 class 所以总归 还是一次
加入 CLASSPATH 比较好 或则只好拜托人深入研究了
[事实你可以利用 ClassLoader 半自动达到你要的东西]
/////////
部分我测试用的 code: 希望多少有帮助
javanetURL u[]=new javanetURL[1];
u[0]=new javanetURL(">
以上就是关于XP下安装JAVA 如何配置类路径classpath和环境变量path全部的内容,包括:XP下安装JAVA 如何配置类路径classpath和环境变量path、Java环境变量中classpath是必须配置吗、java classpath问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)