`
雨过天晴0521
  • 浏览: 155024 次
  • 性别: 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
分享到:
评论

相关推荐

    在linux安装和设置JDK

    上帝终于拯救我了,网上搜了好多linux...终于找到一个配置方法清单,号称是屡试不爽,我怀着一颗惴惴不安的心情试验了一把,我配的是JDK1.4,没想到第一步完成后执行了一下java -version居然成了,为了保证文档的完整性

    jdk1.5.rar

    没想到我电脑还有个jdk1.5,用多了jdk1.7,还是觉得用1.5放心些

    jdk1.8_101.zip

    java jdk-8u101-windows-x64.exe

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

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

    jdk5.0 tomcat5.0配置全攻略

    最近刚转到java的学习,没想到环境配置整整搞了四天,汗!相信有不少像我这样的java初学者对环境的配置有所疑问,在网上找到的东西根本不完整,今天希望用这篇文章能够帮助java初学者走好

    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路径贴出来 供学习使用

    面试官:你说你懂动态代理,那你知道为什么JDK中的代理类都要继承Proxy吗?

    之前我已经写过了关于动态代理的两篇文章,本来以为这块应该没啥问题,没想到今天又被难住了… 太难了!!! 之前文章的链接: 动态代理学习(一)自己动手模拟JDK动态代理、 动态代理学习(二)JDK动态代理源码分析...

    基于jdk1.8 的ArrayList的源码分析

    基于jdk1.8 的ArrayList的源码分析 前言:一说到ArrayList的大家可能立马想到的就是:有序、可重复、查找快但是增删慢、线程不安全。但是具体的原因都不是很清楚,本文就会根据这些问题和大家一起去学习。主要会从...

    win7先运行jbuilder的解决方案

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

    实现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->...

    NS2仿真很好用的----场景生成器NSG2

    当我们为编写TCL脚本痛苦的时间,就会想到为什么没有一个场景生成器,自动生成脚本该多好,这就是一个.运行前需要安装JDK

    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的安装路径)然后点击设置按钮就可以设置好路径,...

    apache和php之间协同工作的配置经验分享

    php在当今一个不陌生的网络技术名词,想到网站或者web可能大多数开发者都会想到php,一个既免费又开源,既容易...在这里我要说的是,如果从事JAVA开发的人员,可能老师最初都会教大家JDK怎么安装,JDK是干嘛用的,那么p

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

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

    网上商城(JAVA)

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

Global site tag (gtag.js) - Google Analytics