设置 JDK环境变量(Windows)

【0】README

0.1) 本文转自 core java volume 1,旨在说明如何设置 JDK环境变量,以及为什么要设置的问题;


【1】JDK目录树

这里写图片描述
Attention)就Java 而言, docs 和 src 是两个最有用的子目录:因为 docs 目录 包含了HTML 格式的类库文件;而 src目录 包含了 Java 类库中公共部分的源代码;


【2】设置执行路径(路径不要包含空格)

2.1)执行路径:它是指os 搜索本地可执行文件的目录列表;(在安装完JDK后,我们还要把 jdk/bin 目录添加到 执行路径中), jdk里面全是可执行文件,如 编译器javac.exe 和解释器 java.exe , 抽取注释工具 javadoc.exe 等;
2.2)如何测试 jdk 设置是否正确: java -version;
这里写图片描述
这里写图片描述


【3】设置类库路径(CLASSPATH环境变量)

Attention)

  • A1)由于运行时库文件(rt.jar 和在 jre/lib 与 jre/lib/ext 目录下的一些其他JAR文件) 会被自动搜索,所以不必将它们显式地列在类路径中;
  • A2) 如何搜索包中的文件路径, 参见 http://blog.csdn.net/pacosonswjtu/article/details/49536995 中的“小节【4】( 将类放入包) “的内容;

Alert) javac 编译器总是在当前等级目录中查找文件, 但 java虚拟机仅在类路径中有 “.” 目录的时候才查看当前目录;

  • A1)如果没有设置类路径, 那也并不会产生什么问题,默认的类路径包含“.”目录(当前目录);
  • A2)如果设置类路径忘记了包含“.”目录,则程序仍 然可以通过编译, 但却无法运行(故,设置类路径,定要设置当前文件夹 ‘.’);

3.1)看个荔枝, 虚拟机如何搜寻类文件:

  • step1)它首先要查看存储在 jre/lib 和 jre/lib/ext 目录下的归档文件中所存放的系统类文件;
  • step2)显然,在那里找不到类文件,然后再查看类路径:
    假定源文件包含指令:
import java.util.*;
import com.horstmann.corejava.*;
  • 并且源代码引用了 Employee类;那么 编译器将试图查找 java.lang.Employee(因为java.lang 包被默认导入)、java.util.Employee、com.horstmann.corejava.Employee 和 当前包中的Employee。对这个类路径的所有位置中所列出的每一个类进行逐一查看;如果找到了一个以上的类,就会发生编译错误,因为类必须是唯 一的;
  • 编译器的任务不止这些: 它还要查看源文件是否比类文件新。如果是这样的话,那么源文件就会被自动地重新编译;

3.2)设置CLASSPATH 环境变量(为什么设置 CLASSPATH为 .;C:\jdk1.8.0_60\lib ?) 参见JDK目录树;
这里写图片描述
这里写图片描述

3.3)设置类路径 (调用的类库 不存在于当前目录或 CLASSPATH路径的时候,需要设置)

  • 3.3.1)最好采用 -classpath(或 -cp) 选项指定类路径:
java -classpath /home/user/classdir : . : /home/user/archives/archive.jar MyProg
或者
java -classpath c:\classdir; . ; c:\archives\archive.jar MyProg
  • 3.3.2)利用 -classpath 选项设置类路径是首选的方法, 也可以通过设置 CLASSPATH 环境变量完成这个操作;目录格式如下:
linux中: export CLASSPATH=/home/user/classdir: . : /home/user/archives/archives.jar
windows中: set CLASSPATH=c:\classdir; . ; c:\archives\archive.jar
  • Attention)直到 退出shell 为止, 类路径设置均有效;

【4】Oracle official tutorial ——how to update your PATH Environment Variable

following contents are reshipped from http://docs.oracle.com/javase/7/docs/webnotes/install/windows/jdk-installation-windows.html

Updating the PATH Environment Variable (Optional)

You can run the JDK without setting the PATH environment variable, or you can optionally set it so that you can conveniently run the JDK executable files (javac.exe, java.exe, javadoc.exe, and so forth) from any directory without having to type the full path of the command. If you do not set the PATH variable, you need to specify the full path to the executable file every time you run it, such as:

C:\> "C:\Program Files\Java\jdk1.7.0\bin\javac" MyClass.java

It is useful to set the PATH variable permanently so it will persist after rebooting.
To set the PATH variable permanently, add the full path of the jdk1.7.0\bin directory to the PATH variable. Typically, this full path looks something like C:\Program Files\Java\jdk1.7.0\bin. Set the PATH variable as follows on Microsoft Windows:

  • Click Start, then Control Panel, then System.
  • Click Advanced, then Environment Variables.
  • Add the location of the bin folder of the JDK installation for the PATH variable in System Variables. The following is a typical value for the PATH variable:
  • C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Java\jdk1.7.0\bin

Note:

  • The PATH environment variable is a series of directories separated by semicolons (;) and is not case-sensitive. Microsoft Windows looks for programs in the PATH directories in order, from left to right.
  • You should only have one bin directory for a JDK in the path at a time. Those following the first instance are ignored.
  • If you are not sure where to add the path, add it to the right of the value of the PATH variable.
  • The new path takes effect in each new command window you open after setting the PATH variable.

Starting to Use the JDK
If you are new to developing and running programs in the Java programming language, see The Java Tutorial online for some guidance. Note especially the tutorial trails under the heading Trails Covering the Basics.
You can also download the JDK documentation from the Java SE Downloads page.

Uninstalling the JDK
If you should ever want to uninstall the JDK, use the “Add/Remove Programs” utility in the Microsoft Windows Control Panel.

Installed Directory Tree
See JDK and JRE File Structure for a description of the directory structure of the JDK. (Note that the file structure of the JRE is identical to that of the JDK’s jre directory.)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

光流法测试代码_高效的企业测试-工作流和代码质量(4/6)

光流法测试代码本文的这一部分将讨论在开发过程中拥有有效工作流程的影响,以及适当的测试代码质量如何使我们能够创建可维护的测试,尤其是对于复杂项目。 开发工作流程和管道 编程是一项流程活动,我们开发人员应该对保持工作流程高效和缩短…

水泵怎么做_泳池设备日常怎么维护和保养?

点击上方“蓝字”,关注我们.●电机突然停止运转怎么办?1.检查电路和电线接口等。2.检查输送到电机的电压是否过低(通常由于电源线太小而引致的电流不足)。3.检查是否有过载而引起电流过大。注:Hayward 水泵的单相电机有自动过热保护装置。该装…

鸡肉部位英文对照_鸡肉和鸡蛋–测试前解决Spring属性

鸡肉部位英文对照考虑一个负责进行远程调用和获取详细信息的服务类: ... public class CitiesService { private final WebClient.Builder webClientBuilder; private final String baseUrl; public CitiesService( WebClient.Builder webClientBuilder, Value ( &…

git pull忽略指定文件_Git忽略提交规则

在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add .的时候,遇…

lombok var_使用var,Lombok和Fluxtion轻松处理事件

lombok var介绍 在本文中,我将结合使用Lombok和Fluxtion这两种产品,以展示工具如何在减少代码编写和交付时间的同时提高代码的可读性。 使用Java 10中的var可以进一步改善这种情况。 产品和var都在构建时使用推断来加速开发。 Fluxtion的精神是最大程度…

更换mysql_安利给你,关于MySQL字符集乱码与解决方案

推荐阅读:闭关修炼21天,“啃完”283页pdf,我终于4面拿下字节跳动offer肺炎在家“闭关”,阿里竟发来视频面试,4面顺利拿下offer字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库&#x…

api自动化_如何在不增加人员的情况下自动化API安全程序

api自动化在这篇文章中,我们将撰写一篇综合文章,内容涉及如何在不增加人员的情况下自动执行API安全程序。 在现代世界中,数据对于提供者和消费者都至关重要。 数据科学的出现证明了这一事实。 对于某些组织,整个业务模型是建立在信…

kali用x-shell连接_良心国产工具,比Xshell好用还免费!

使用或维护Linux系统的都知道,我们日常对服务器的操作,一般都会借助SSH工具远程登录到服务器之后进行操作。常用的SSH工具有不少,比如:Xshell、Putty、SSH Secure Shell Client、secureCRT等等。民工哥使用过其中两种secureCRT和X…

ibm liberty_使用Open Liberty的开发模式最大程度地缩短周转时间

ibm liberty我上传了一个视频,其中显示了如何在编写部署在Open Liberty上的Enterprise Java应用程序时减少周转时间。 Maven插件的liberty:dev目标监视文件更改并立即应用更改,而无需重建整个部署工件。 我将展示在更改源代码,配置&#xff…

vue 分模块打包 脚手架_一步步从头搭建 Vue 开发环境

前言由于是工具,很可能你看到的时候有些工具包已经升级了,会有一些报错;这个你就需要自己探索了。工具的版本node: v10.16.0npm: v6.9.0babel: 7.5.5webpack: 4.38.0入题提醒:在我们开始之前,你先检查下你相关工具的包…

stomp java客户端_Stomp-Spring服务器端的Web套接字Java客户端

stomp java客户端问题&#xff1a; 为了分析问题&#xff0c;我不得不编写一个简单的Java Web套接字客户端站点代码&#xff0c;并使用基于stomp的Web套接字代理连接到服务器端基于Spring的应用程序。 解决方案&#xff1a; pom.xml <?xml version"1.0" encodi…

tf.metrics._将指标标签与MicroProfile Metrics 2.0一起使用

tf.metrics.从我们的应用程序发出的与业务相关的度量标准可能包含要为其测量特定度量标准的参数&#xff08;即标签或标签 &#xff09;。 从MicroProfile Metrics 2.0开始&#xff0c;可以使用API​​将标签分配给特定的指标。 声明式方法 假设我们有以下资源&#xff1a; P…

ppt课堂流程图_除了直线能设计PPT,没想到曲线也实用,太赞了!

前几天在分享PPT设计的方法时&#xff0c;收到反馈&#xff0c;问这种曲线是如何设计以及怎么用&#xff1f;其实对于曲线&#xff0c;如果用好了比直线更加有效果&#xff0c;曲线本身自带动态效果&#xff0c;看一下。除此之外&#xff0c;曲线不仅可以用在PPT中&#xff0c;…

算法分析

【0】README 0.1&#xff09; 本文总结于 数据结构与算法分析&#xff1b;旨在了解 算法分析涉及到的数学基础、时间复杂度分析法则、和其它的一些法则 和 结论&#xff1b; 【1】 数学基础 1.1&#xff09;本书将使用以下4个定义&#xff1a; 对上述定义的分析&#xff0…

java文件端点续传效果图_Java单依赖性Dockerized HTTP端点

java文件端点续传效果图在本文中&#xff0c;我们将创建一个基于Java的HTTP端点&#xff0c;使用它创建一个可执行jar&#xff0c;将其打包在Docker中并立即在本地运行。 本文面向初学者&#xff0c;他们想要寻找一个简单的演练来在Docker中运行Java应用程序。 描述Dockerize…

立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖

Tompkins Robotics荣获2020 NextGen供应链解决方案提供商奖汤普金斯国际被《供应链管理评论》指定为机器人技术类获奖者2020年3月20日消息Tompkins International的业务部门 Tompkins Robotics被选为第二届年度NextGen供应链奖的获得者。汤普金斯机器人技术公司是《供应链管理…

final 实例域+final类+final方法(阻止继承)

【0】README 0.1&#xff09;本文描述源代码均 转自 core java volume 1&#xff0c; 旨在理清 “final 实例域”&#xff1b; 0.2&#xff09; 最后还增加了 阻止继承 的内容&#xff0c;涵盖了final类final方法&#xff1b; 0.3&#xff09; 引入了 内联 以及 即时编译器对…

java责任链设计模式_Java中的责任链设计模式

java责任链设计模式在本教程中&#xff0c;我们将学习如何在Java中实现责任链模式。 责任链设计模式涉及到拥有一系列负责处理请求的对象链。 当客户端发送请求时&#xff0c;第一个处理程序将尝试处理该请求。 如果可以处理&#xff0c;则请求处理在此结束。 但是&#xff0c…

机加工程序工时程序_团宠来袭 | 针对多品种小批量的机加工柔性生产解决方案...

“天下之至柔&#xff0c;驰骋天下之至坚。无有入于无间&#xff0c;吾是以知无为之有益。”老子指出&#xff0c;世间最柔弱的东西里面往往蓄着人们看不见的巨大力量&#xff0c;使得最坚强的东西也无法抵挡。就像水是最柔的东西&#xff0c;但却能穿透山地。柔性的力量不容小…

静态方法+工厂方法(静态方法用途)

【0】README 0.1&#xff09; 本文描述源代码均 转自 core java volume 1&#xff0c; 旨在了解 “静态方法”&#xff1b; 【1】静态方法相关 1.1&#xff09;静态方法是一种不能向对象实施操作的方法&#xff1b; 如&#xff0c;Math.pow(x, a)&#xff0c; 在运算时&#…