`
雨过天晴0521
  • 浏览: 159379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

由安装JDK想到的

    博客分类:
  • java
 
阅读更多
装了这么多年jdk,我发现网上很多安装jdk的文章对于某些问题都讲的不够透彻。 我想到如下几点:

1.创建PATH这个用户变量。 众所周知, windows命令行是不区分大小写的, 变量名也是, windows的系统变量里已经内置了Path变量, 所以如果在系统变量里显然没必要新建个PATH变量吧,可以在原有Path里的值里直接添加。而用户变量里没有Path变量, 所以可以添加个Path变量, 其实无论这个登录的user在哪个变量添加这个Path变量, 保存完配置后, 新开个cmd窗口, 输入path,输出的值里都包含系统变量里的Path值。 所以并不一定非要在用户变量里创建PATH这个环境变量, 直接编辑系统变量里的Path也是可以的。 关于系统变量和用户变量的区别, 这个哥们的文章说的很详细,大家可以看看 http://www.cnblogs.com/zhizouxiao/archive/2012/11/03/2753077.html, 简单说就一句话, 一个user登录系统后他的path会既包括系统变量里的path值也包括他自己创建的用户变量里path的值, 但系认变量path的值还是会被加在用户变量path值的前面。

2.既然在用户变量里添加PATH这个变量, 和编辑系统变量里Path的值不就一样了么, 还有什么可说的? 效果的确是一样, 但对于windows下installer.exe版的JDK 6(包括更高版本)来说, 还真需要注意一点。就是如果是编辑系统变量里Path值, 最好是把JDK和jre bin的路径放到已有值的最前面,别忘了加隔离符;因为installer.exe版的JDK 6安装时回自动拷贝一个java.exe和javaw.exe等到C:\Windows\System32下, 而这个目录就默认存在于系统变量的Path值的最前面, 这就是为什么安装完installer版的jdk, 不用配置任何环境变量, 打开一个cmd窗口直接输入java回车, 就能看到java.exe输出的原因。 而系统会按照path中值的顺序先找到system32下的java.exe,如果你系统里不同路径下有两个版本的jdk, system32下的java.exe和另一个路径下的java.exe(这个被配置在用户变量或系统变量path值的后面)版本高低不一致, 编译和运行千万不能用两个高低不同的版本的jdk. 你也许会在编译时用了高版本的java.exe, 而运行时用了低版本的java.exe, 这样就可能出现bad version class的EXCEPTION. 所以总结一下, 如果你的系统里有高低不同版本的jdk, 千万注意编译时要注意是否用的system32下的java.exe, 而这个java.exe与你期望的运行时版本是否一致。最后建议大家即使在windows上也下载zip的JDK, 这样就可以避免拷贝java.exe到system32下的问题。

3.最后说下网上很多配置jdk是否成功就直接输入java -version.这也是不正确的。前面第二点已经讲了, 从JDK 6以后,windows installer版的jdk默认就拷贝到system32下, 所以不做任何配置显然也是可以有java -version输出的。这并不能作为JDK是否配置成功的标志。JDK配置还包括JRE下的bin和lib, 而这些路径是否配置过显然不能仅以java -version作为标志了。举个例子, 在配置完ant后, 仅配置JDK而没有配置JRE的结果就是, 直接在cmd里输入ant回车就会提示tool.jar找不到。关于JRE和JDK的关系这个哥们的文章讲的很详细, 以后慢慢研究http://xinklabi.iteye.com/blog/1788780
分享到:
评论

相关推荐

    jdk1.8_101.zip

    《Java JDK 1.8更新101详解》 Java Development Kit(JDK)是Java编程语言的核心组件,它提供了开发和运行Java应用程序所需的工具和环境。本文将深入探讨JDK 1.8的第101次更新,即"jdk1.8_101.zip",该版本是针对...

    openjdk和oracle jdk的区别

    OpenJDK 源代码不完整,这很容易想到,在采用 GPL 协议的 OpenJDK 中,SUN JDK 的一部分源代码因为产权的问题无法开放 OpenJDK 使用,其中最主要的部分就是 JMX 中的可选元件 SNMP 部分的代码。因此这些不能开放的源...

    jdk1.4中无需修改的rowset.jar

    在jdk1.5上用spring管理数据,部署到jdk1.4上,说CachedRowSet有问题,寻遍方法,最后得一rowset对jdk1.4里的进行覆盖,得的rowset.jar还需要进行修改,于是修改好,放到项目的lib中,成功!想到需要帮助的人们,...

    linux安装jdk,tomcat 配置vsftp远程连接的步骤

    不知不觉入行也有一年了,这两天在公司上班有空了就自己装了个vmware虚拟机,装了个红帽6.1完全命令行的操作系统,想着搭个公司现在在用的测试环境,没想到中间碰到了很多问题,不过大部分都解决了,现在可以达到...

    jdk完整源代码(jvm,native,sun)

    jdk完整源代码 sun包源 jvm源 n ative关键字修饰的java方法源 rt.jar nio misc 等等 几乎我们能想到的都包含进来了 sun包不太好找jdk\jdk\src\share\classes路径贴出来 供学习使用

    win7先运行jbuilder的解决方案

    2.想到Jbuilder是Java的Swing开发的,应该和系统不应该有太大关系,而且新的JDK1.5.0U14是可以完美兼容Vista的,所以用安装后的JDK1.5.0U14,替换了Jbuilder中自带的JDK1.5.0U03,毕竟都是JDK1.5,应该差别不大,大...

    werwrwe.sdfwnd.werewf.zip

    提到Java反编译工具,大家可能首先想到的是JAD (Java Decompiler),它是一款广泛使用的开源工具,支持多种版本的JDK。本压缩包中包含的可能就是一款这样的工具,兼容JDK1.7和JDK1.8,确保在不同环境下都能正常工作。...

    Scala编程基础.docx

    1. 安装 JDK,因Scala 是运行在 JVM 平台上的,所以安装 Scala 之前要安装 JDK。 2. 安装 Scala,Scala 有两个版本 2.11.x 和 2.12.x,推荐使用 2.11.x 版本。 3. 安装 Scala 开发工具,主要有两种:Eclipse 和 IDEA...

    实现Jenkins docker部署,设置svn/maven/jdk/ssh,编写自动部署工程脚本

    因为要新建maven工程,需要提前安装好jdk和maven。 第一步:docker search jenkins,找到评星最多的官方镜像,pull后创建容器,没想到无法启动,无奈放弃,选用第二个jenkins/jenkins,此为第一个坑:-( 第二步:...

    java中idea启动java项目报错-error:java: 无效的源发行版: 10

    查看了自己环境的安装版本是j d k 8,而idea环境中的配置是jdk 10,所以会报这个错误! 在电脑中打开 c m d控制台,输入java -version可以看到我们自己的jdk版本。 解决方案 调整项目结构中使用的java版本(File->...

    win7系统下java相差8小时解决(经典小问题)

    用户的测试机安装的win7,本人用的是 WEBLOGIC8.1 JDK1.4的。 测试时发现时间总是差8个小时,郁闷死。 立马想到时区不对,查看控制面板里时区设置(顺便BS一下win7,控制面板就不能学xp有个经典模式吗?郁闷死),...

    Reploy-20190723.zip

    最近组长要求我写一个.bat文件实现一键安装(Tomcat、Mysql、Redis、Jdk)的文件。当时很懵,只在抖音看过用它实现一些恶搞别人的视频,当时只觉得很nb,没想到现在自己也能实现……废话不多说,用代码说话!一键...

    Delphi编写的Java环境变量配置程序.rar

    对Java新手来说,环境变量的配置有些麻烦,笔者用Delphi编写了一个Java环境变量配置程序,说明:操作很方便,先选择路径(这个地方,我没有想到很好的判断是不是jdk的安装路径)然后点击设置按钮就可以设置好路径,...

    Java中文文档以及Java面试宝典

    首先,"jdk api 1.8_google.CHM"是Java Development Kit(JDK)1.8版本的API文档,它是一个非常重要的参考资料。CHM文件是Microsoft编写的HTML帮助文件,包含了JDK 1.8的所有类库、接口、方法和常量的详细描述。在这...

    C#设置与获取环境变量的方法详解

    本来想拿学校机房的Android编辑器直接粘到自己电脑上用,发现它的eclipse是32位的,而我的JDK是64位的,于是想到干脆装两个JDK,用C#做一个能够更改环境变量的程序 环境变量是包含关于系统及当前登录用户的环境信息...

    网上商城(JAVA)

    整个项目用到的技术有:javaweb基础知识(servlet、jsp),反射,泛型,装饰着模式(其实就过滤器的时候用到了一下),Jquery,ajax,javascript 反正就是写的时候想到什么用的什么。实现的功能有:前台登录注册,前台...

Global site tag (gtag.js) - Google Analytics