开发者社区> 问答> 正文

JDK 环境变量配置诡异问题 :报错

由于工作需要,项目组需要将一个cs端小程序打包成.exe 工具给业务部门使用,使用exe4j,因为exe4j一般打包都是使用的32的jre,所以又去官网下了一个32的jre1.8,安装在了一个新的盘符,随后在开启appium时,报错,appium日志报:java  -version 异常。cmd命令javac正常,然而java和java报错:could not open  xx\xx\jvm.cfg,小弟初步判断是安装了那个32位jre的原因,上网查了下资料,大概也是反复安装了jdk或者jre的原因,在网上找到了一个方便的解决办法,将path系统变量中对于java_home的配置至于最前,发现很好了解决了,然后也回想起当时在学校上学的时候,好像老师说过配置在path的最前面比较好,系统会优先检索,不过还是不是很理解,有木有大神了解将java_home变量配置置前和置后的原理区别,置前能解决我这个问题的原理。

展开
收起
kun坤 2020-06-14 15:44:41 625 0
1 条回答
写回答
取消 提交回答
  • 系统对配置的读取是顺序读取的,并且满足后就跳出,即如果你在一个变量内配了两个相同东西,系统在获取的时候,在获取到第一个之后就满足要求了,就不会继续往下找了

    ######Path=C:\Program Files\Java\jdk1.7.0_17\bin;C:\Program Files\Java\jdk1.7.0_17\jre\bin; 配置的是jrk里面的jre。看了下path的配置,除了系统一些配置和其他软件的配置,没有相关jdk或者jre的配置了,后续安转jre也没有进行环境变量配置,这样也会对jre的加载造成影响吗?系统是根据注册表来加载path的?######

    用一个变量去循环接收,有的是判断是否为null,不是就break,这种是先到先得。有的不判断,这种就是覆盖了。

    ######回复 @风青山 : 嗯,对于path的作用有了一定的了解了,感谢,可能这个问题的出现是java方面的问题,看了下资料path对应的变量会在系统注册表中对应,我在后续安装的jre应该会在系统注册表中注册,所以会导致java和java -version运行出问题,置前就会直接找JAVA_HOME里对应的配置。######回复 @有一点儿梦想的咸鱼 : 按系统配置的顺序的,path配起来是一条字符串,最后会转化为一个字符串数组。系统不会遍历安装路径,那样很费力。path是给系统为查找可执行文件指定的路径,配置path后就可以在命令行中查找指定目录下的可执行文件,而不必切换到那个目录下执行。
    2020-06-14 15:44:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载