java环境用1.6 程序用1.8 影响吗?

self-transcendence 2018-05-29 09:27:50
今天突然想到,我的程序用的1.8,环境变量配置的是1.6
为什么没有产生影响?
具体疑问是:环境变量到底是做什么用的?
如果环境变量是做编译运行的,那么1.8和1.6肯定是有特性不同的,怎么会没有产生影响?
...全文
2182 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2018-06-05
  • 打赏
  • 举报
回复
引用 7 楼 w15321271041 的回复:
[quote=引用 4 楼 selfTranscendence 的回复:] [quote=引用 2 楼 w15321271041 的回复:] 楼主首先要明确一点,高版本是兼容低版本的; 然后就是1.8版本用1.6编译通过的原因,楼主可以看一下代码中是否引用了jdk1.8的新特性,比如future,steam,lambada表达式,如果没有,编译通过是可以解释的通的! 望采纳!!
环境变量配置的jdk是idea等工具用来编译文件的对吗?每次按ctrl+s编译的时候就是运用的环境变量的jdk? [/quote] 兄弟,你理解的不完全对,IDEA,eclipse这些只是工具,简化了你编译执行的这个流程,因此和你配置环境变量还是有区别的,且听我解释一下: 还记得你写的第一个HelloWorld.java程序么?用记事本写好后,cmd命令行进入那个文件夹javac HelloWorld.java 编译成HelloWorld.class,然后再执行java HelloWorld 配置环境变量的目的就是让你在windows命令行下可以随意的调用java的指令(比如javac,java)而不是jdk的全路径C:\Program Files\Java\jdk1.8.0_131\bin\javac ,这就是配置环境变量的妙处。 那再回到eclipse,IDEA这种工具上面。eclipse现在其实很少用了,exlipse这种属于依赖环境变量的,就是你必须配好,他才能启动(其实根本还是依赖你配置的环境变量);而IDEA是不依赖你系统中配置的环境变量的,你可以在File -> Porject 里面自己去编辑想要的jdk,只要指定你的jdk目录,他就会自己识别,一个workspace对应一个 jdk版本,这就是IDEA的优势,降低了与系统的耦合度,更加灵活! 还有对于你说的CTRL+S的这个问题,只是保存,而不是编译。你要用IDEA编译,可以直接在main函数那里右键->run *.main(),这个过程是编译+执行;还有就是,单纯编译的话, 点击菜单栏中的Build->build project即可 望采纳,谢谢![/quote] eclipse也不需要环境变量的...可以在eclipse.ini指定vm,当然eclipse本身就是java写的,这个是必须指定的
self-transcendence 2018-05-29
  • 打赏
  • 举报
回复
引用 2 楼 w15321271041 的回复:
楼主首先要明确一点,高版本是兼容低版本的; 然后就是1.8版本用1.6编译通过的原因,楼主可以看一下代码中是否引用了jdk1.8的新特性,比如future,steam,lambada表达式,如果没有,编译通过是可以解释的通的! 望采纳!!
环境变量配置的jdk是idea等工具用来编译文件的对吗?每次按ctrl+s编译的时候就是运用的环境变量的jdk?
self-transcendence 2018-05-29
  • 打赏
  • 举报
回复
引用 1 楼 maradona1984 的回复:
你程序用1.8,环境变量配的1.6 我只想你怎么跑起来的,高版本兼容低版本,但没听说过低版本能编译出高版本来 除非你装多个jdk,环境变量配的1.6,开发工具配的是1.8的 如果能通过编译并打包,你只要保证运行环境的jre版本高于或者等于你打包用的jdk版本
也就是说只要环境变量使用高版本,程序里面的jdk用低版本是没有问题的?
王溺码 2018-05-29
  • 打赏
  • 举报
回复
楼主首先要明确一点,高版本是兼容低版本的; 然后就是1.8版本用1.6编译通过的原因,楼主可以看一下代码中是否引用了jdk1.8的新特性,比如future,steam,lambada表达式,如果没有,编译通过是可以解释的通的! 望采纳!!
maradona1984 2018-05-29
  • 打赏
  • 举报
回复
你程序用1.8,环境变量配的1.6 我只想你怎么跑起来的,高版本兼容低版本,但没听说过低版本能编译出高版本来 除非你装多个jdk,环境变量配的1.6,开发工具配的是1.8的 如果能通过编译并打包,你只要保证运行环境的jre版本高于或者等于你打包用的jdk版本
王溺码 2018-05-29
  • 打赏
  • 举报
回复
引用 4 楼 selfTranscendence 的回复:
[quote=引用 2 楼 w15321271041 的回复:] 楼主首先要明确一点,高版本是兼容低版本的; 然后就是1.8版本用1.6编译通过的原因,楼主可以看一下代码中是否引用了jdk1.8的新特性,比如future,steam,lambada表达式,如果没有,编译通过是可以解释的通的! 望采纳!!
环境变量配置的jdk是idea等工具用来编译文件的对吗?每次按ctrl+s编译的时候就是运用的环境变量的jdk? [/quote] 兄弟,你理解的不完全对,IDEA,eclipse这些只是工具,简化了你编译执行的这个流程,因此和你配置环境变量还是有区别的,且听我解释一下: 还记得你写的第一个HelloWorld.java程序么?用记事本写好后,cmd命令行进入那个文件夹javac HelloWorld.java 编译成HelloWorld.class,然后再执行java HelloWorld 配置环境变量的目的就是让你在windows命令行下可以随意的调用java的指令(比如javac,java)而不是jdk的全路径C:\Program Files\Java\jdk1.8.0_131\bin\javac ,这就是配置环境变量的妙处。 那再回到eclipse,IDEA这种工具上面。eclipse现在其实很少用了,exlipse这种属于依赖环境变量的,就是你必须配好,他才能启动(其实根本还是依赖你配置的环境变量);而IDEA是不依赖你系统中配置的环境变量的,你可以在File -> Porject 里面自己去编辑想要的jdk,只要指定你的jdk目录,他就会自己识别,一个workspace对应一个 jdk版本,这就是IDEA的优势,降低了与系统的耦合度,更加灵活! 还有对于你说的CTRL+S的这个问题,只是保存,而不是编译。你要用IDEA编译,可以直接在main函数那里右键->run *.main(),这个过程是编译+执行;还有就是,单纯编译的话, 点击菜单栏中的Build->build project即可 望采纳,谢谢!
幽饮烛 2018-05-29
  • 打赏
  • 举报
回复
先搞明白程序是如何找到 JDK 的。 一般 java 程序 在程序目录下找 jre 目录下找 java。 找不到时在 PATH 找 java。 找不到时再通过 JAVA_HOME 环境变量,找到 java。 找不到时,再在常见目录里找。 某些程序还会优先从运行参数里面找 java。 所以,环境变量可有可无。环境变量还区分系统环境变量、用户环境变量、父级进程环境变量。很多人只知道配环境变量,却不清楚配置了之后的影响。
  • 打赏
  • 举报
回复
没看懂程序用1.8、环境变量配的1.6是啥意思。 1、假如你是myeclips/eclips开发程序,默认是使用自带的jdk,除非你你手动修改了开发工具的jdk路径。跟环境变量没关系(不配也可以) 2.环境变量配置的jdk路径只在你使用java/javac/启动tomcat时有用。

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧