IT行业云计算java培训课程学习笔记|java编程语言环境变量配置时需要注意哪些问题
Java编程语言作为一种当下广泛应用的编程语言之一,凭借庞大的使用基数、高需求的行业特点吸引了越来越多的人想要成为Java软件开发工程师,为了能够让大家更好的学习Java编程语言,今天北京八维教育培训学校分享一份IT行业云计算Java培训课程学习笔记——java编程语言环境变量配置时需要注意哪些问题,希望有助于大家学习Java编程语言。
1、Java安装时要注意的问题
安装Java时,会建议不要把JDK安装在带有空格的路径中,如Program Files。为什么要这样建议呢?书上或老师的说法是:这样其他需要使用Java的软件有可能出现莫名其妙的问题。至于为什么会出现“莫名其妙的问题”却 不得而知。其实,这个问题还是很好理解的。在命令行中,命令和选项、参数等是通过空格分割的,如果javac/java命令(因为其他软件引用该命名时, 一般会使用完整路径)路径中有空格,空格前面部分会被当作命令来处理,显然会出问题。实际上,类文件路径中,如果包含空格,编译或运行时,这个路径是需要 放在引号中的,否则会被当作两部分来处理。
2、Java环境变量配置是要注意的问题
其实安装完Java后,不配置环境变量也是可以用的。只是在命令行中使用Java相关命令需要带上完整路径而已。然而这样很不方便,还有就是Eclipse之类由Java编写的软件会运行不了。所以配置必要的环境变量还是很有必要的。
2.1 JAVA_HOME环境变量
配置过程就不说了,主要讲述一下该变量的作用。其实,就Java本身来说,是不需要JAVA_HOME环境变量的。该环境变量只是用于其它软件(由Java编写的)找到Java的安装路径,例如Ant就需要先配置JAVA_HOME环境变量。
2.2 PATH环境变量
配置该变量是为了方便使用Java相关命令时,不需要输入完整的路径,只需要输入命令名即可。
2.3 CLASSPATH环境变量
不少教程甚至老师都说要配置该环境变量,把rt.jar 和 tools.jar等加入其中。其实根本不需要,这些类是由JAVA启动类装载器(Boostrap Classloader)装载的,这些是启动类(Bootstrap classes)。
在这讲解一下JAVA程序运行时如何查找类文件?
根据JDK文档说明, JAVA程序以以下3种顺序查找运行的类文件。
◆Bootstrap classes (*)
◆Extension classes
◆Users classes
2.3.1 Bootstrap classes
就是JAVA在启动时载入的类文件,这些类文件主要是rt.jar和jre/lib 目录下的一些类文件。Bootstrap过程中的class path是保存在 sun.boot.class.path系统属性中的。可以通过 System.out.println(System.getProperty("sun.boot.class.path")); 来显示。同时Bootstrap classes 可以通过 -Xbootclasspath 命令行参数来指定。
下面列出了系统中默认的Bootstrap classes:
jre\lib\rt.jar; jre\lib\i18n.jar;
jre\lib\sunrsasign.jar; jre\lib\jsse.jar;
jre\lib\jce.jar; jre\lib\charsets.jar;
jre\classes
* Bootstrap
bootstrap是皮鞋后部的一条小带子或一个小环,它可以使你方便地把鞋子穿起来。在计算机中,是指使用一个很小的程序将某个特定的程序(通常是指操作系统)载入计算机中。
2.3.2 Extension classes (扩展类文件)
Extension classes主要是指的jre/lib/ext目录下的类文件,这些文件必须在jar文件或 zip文件中。如果不同名字的jar文件包含有相同的类文件,那么哪一个类文件被载入是不确定的。
2.3.3 User classes (用户自定义的类文件)
现在到了最重要的地方了,我们常说的CLASSPATH设置其实就是指定 User classes。JAVA按照以下四种顺序查找User classes。
2.3.3.1 默认的User classes . (dot) 就是指当前目录。
2.3.3.2 系统变量CLASSPATH设置所指定的类库,该变量覆盖(override)默认的User classes。
2.3.3.3 用命令行参数 -cp 或 -classpath指定的类库。这个时候覆盖默认的User classes 和CLASSPATH设置变量。
2.3.3.4 通过-jar 参数指定的jar文件。此时覆盖上面的三种情况,如果使用这种情况,所有的类文件必须来自指定的jar 文件。
了解了java如何查找User classes,我们接下来将要学习如何设置CLASSPATH变量。
2.3.4 配置CLASSPATH环境变量
如果只是一般运用java,只是用到java的基本库文件,练练手而已,则不需要CLASSPATH设置。
但是在一般开发情况下,这是很少遇到的。所以我们要自己CLASSPATH设置 。
我们一般的方法就是按照2.3.3.2 来设置CLASSPATH系统变量,像开始设置path一样,我们可以添加一个CLASSPATH设置的系统变量。网上有些文章所提到的添加rt.jar 和 tools.jar 等等是不需要的,因为这些类库是属于Bootstrap classes的。我们只要定义User classes ,如果我们要编译servlet 那么只要servlet-api.jar 和 jsp-api.jar 就可以实现基本的需要了。
另外要注意的是2.3.3.2 override 2.3.3.1。我们CLASSPATH设置时要将 .(dot)[表示当前目录]放在CLASSPATH设置中,然后用 ;(semicolon)分隔开来。由于其他提供的类文件都是放在jar文件中,我们设置时一定要将完整的jar 文件包含在CLASSPATH 设置中,而不是将其目录添加到CLASSPATH 设置中(很重要的一点)。
这个时候又一个问题出现了,当需要添加的jar 文件过多时,管理java 类库变得很麻烦。所以我认为在基础学习时用命令行编译调试,有利于JAVA的学习,但是到开发时则一般会要用到 IDE 工具(现在比较流行的是eclipse 和 netbeans ),或者通过Ant来编译。
3、总结
到这里,文章开始的问题便明朗了:没有配置CLASSPATH时,没有错误,配置了反而出错了,这就是因为2.3.3.2覆盖2.3.3.1。所以,在配置CLASSPATH时,应该将“.;”放在最前面,以便首先在当前目录搜索。
开班信息
热点问答
面试题库
IT培训技术知识分享:java开发工程师需要掌握哪些知识?
IT技能云计算培训技术干货Kubernetes教程分享
IT行业解惑:2023Java行业就业发展前景怎么样?
IT行业解惑:2023从Java培训班出来好就业吗?
IT行业解惑:java和php哪个好?
IT行业解惑:java后端开发需要学什么课程?
IT行业解惑:java和c++哪个好?
IT行业解惑:零基础学前端好还是学java好?
IT行业解惑:女生学学云计算技术与应用就业发展前景怎么样?
IT行业解惑:java从入门到精通需要多久?
IT行业解惑:学java要学多久才能参加工作?
IT行业解惑:java编程开发可以从事什么工作?
IT行业解惑:云计算主要学什么课程内容?
IT行业解惑:java就业发展前景怎么样?
IT培训技术知识分享:零基础java编程开发入门应该怎么学?
IT培训技术知识分享:java编程开发有哪些技术?
IT行业解惑:女生适合学java编程开发吗?
IT行业解惑:IT云计算学习是否很难?
推荐问答
IT行业解惑|优秀的java软件开发工程师需要具备什么能力
Java作为一门广泛应用于企业级应用和开发的编程语言,一直以来都备受青睐。然而,对于那些对Java软件开发工程师感兴趣的人来说,他们经 ...
IT行业解惑|学习云计算有前途吗?
目前,衣食住行等各种基于互联网的服务都在产生大数据,大数据的处理和分析需要云计算。云计算的应用极大地改变了人们的生活方式、消费 ...
IT行业解惑|零基础如何学习云计算?
云计算是近年来的一项新技术。在云计算技术出现之前,没有人知道云计算,大学也没有开设云计算相关的课程。第一批从事云计算工作的人基 ...
IT行业解惑|java软件开发工程师就业前景怎么样?
对于那些想要转行Java软件开发工程师的人来说,门槛相对较低,但是要想有一个长远的职业规划,需要认真规划职业发展。...
IT行业云计算java培训课程学习笔记|Java程序员必须熟知的十项技术
在我们学习过程中需要我们去掌握一些常见的Java编程技术,那么有哪些技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——Java程序员必须熟知的十项技术。...
IT技术解惑|Java工程师如何提升职场竞争力
Java作为一门广泛应用于企业级应用和开发的编程语言,一直以来都备受青睐。然而,对于那些对Java开发感兴趣的人来说,Java工程师如何提升职场竞争力呢?...
IT行业云计算java培训课程学习笔记|Java程序员必须掌握的英语词组(九)
学习Java编程语言技术,都会学习哪些内容?北京八维教育培训学校先分享整理好的一份IT行业云计算java培训课程学习笔记中的Java程序员必须掌握的英语词组...
IT行业云计算java培训课程学习笔记|Java程序员必须掌握的英语词组(八)
学习Java编程语言技术,都会学习哪些内容?北京八维教育培训学校先分享整理好的一份IT行业云计算java培训课程学习笔记中的Java程序员必须掌握的英语词组...
IT行业云计算java培训课程学习笔记|Java程序员必须掌握的英语词组(七)
学习Java编程语言技术,都会学习哪些内容?北京八维教育培训学校先分享整理好的一份IT行业云计算java培训课程学习笔记中的Java程序员必须掌握的英语词组...
IT技术解惑|云计算入门必备常识
云计算技术说难不难,说简单也不简单。首先我们要了解一下什么是云计算。云计算是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的...
IT技术解惑|云计算技术主要学什么?
目前云计算岗位有核心技术多样化,就业岗位全面化的趋势,云计算工程师既要掌握虚拟化、容器、自动化运维及云平台等核心技术,还要了解 ...
IT技术解惑|云计算运维的就业方向有哪些?
云平台运维工程师。云平台运维工程师是云计算运维中最主要和基础的职业方向之一。他们负责管理和维护云计算平台的稳定性和性能,确保云 ...
IT技术解惑|云计算技术人才未来就业发展前景怎么样?
面对未来云计算产业的飞速发展,无论从技术层面,运营商层面还是集成与服务提供层面,企业对于云计算技术人才需求数量激增。...
java编程课程培训学习笔记|易疏忽的日志
当下越来越多的人学习Java编程技术,需要我们从基础知识学起,学好之后还要掌握一定的主流Java技术,那么有哪些技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记...
java编程课程培训学习笔记|equals 方法和==究竟有什么区别
我们学习过程中需要我们去掌握一些常见的Java编程技术,那么有哪些技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——equals 方法和==究竟有什么区别。...
java编程课程培训学习笔记|volatile关键字有什么作用
我们学习过程中需要我们去掌握一些常见的Java编程技术,那么有哪些技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——volatile关键字有什么作用。...
java编程课程培训学习笔记|缓存的淘汰策略有几种方式
目前Java编程技术发展很迅速,有哪些Java编程技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——缓存的淘汰策略有几种方式。...
java编程课程培训学习笔记|数据库如何保证主键唯一性
目前Java编程技术发展很迅速,有哪些Java编程技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——数据库如何保证主键唯一性。...
java编程课程培训学习笔记|redis持久化的方式
目前Java编程技术发展很迅速,有哪些Java编程技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——redis持久化的方式。...
java编程课程培训学习笔记|受欢迎的Java类
目前Java编程技术发展很迅速,有哪些Java编程技术是必须掌握的呢?北京八维教育培训学校整理了一份java课程培训学习笔记——受欢迎的Java类。...
八维教育启动“晨曦破晓”计划
以科技助力高薪破局
以科技提升系统效率
以科技提高服务质量
八维教育助力学子优质就业!
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通