日期:2014-05-20  浏览次数:20837 次

有关JDK,JVM和JRE的问题
我本机上已经安装过Oracle.
现在学习JAVA,安装了JDK,但装上后通过cmd运行java程序显示如下错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 50.
查询后,我知道是我用了高版本的JDK编译文件后,在低版本的JVM上运行。但我如何知道我的JDK版本和JVM版本?
又如何使得JDK版本和JVM版本匹配?
我知道有一种办法是通过 java -target XX ClassName的方式,但具体如何实施不是很清楚。
以上错误是由于我安装过Oracle导致的吗?因为,同一个JDK包,在我另外一台电脑上安装却能正确运行JAVA程序。

顺便问一下,JDK,JVM,JRE的关系。
安装JDK会安装好JVM和JRE吗?JVM我知道是JAVA程序得以运行的虚拟机,JDK我知道是负责编译JAVA程序和提供开发函数包的,JRE我知道字面意思是运行时环境,但具体含义不了解,求解释。

各位,晚安,希望明早起来有个满意的答案。:-D

------解决方案--------------------
一般有源码就行。一个优秀的程序是肯定有开发文档的,便于以后维护。你看看哪个类出问题,然后稍作修改就可以了。比如java.nio包是API 7推出的,在JDK1.6之前的编译是会报错。另外的一些低版本API中的函数在高版本中是Deprecated,它们在高版本的编译也是会发出Warning,在未来更高版本也可能会演变成Error。所以这都叫一个代码的维护过程。

总体一个原则是,用最新的API,用最新的JRE来跑。

理论上JDK包含JRE,但是2者并不冲突。最简单就是安装JRE,即使你安装了JDK,建议也最好安上JRE。至于JVM处于JRE内部就不需你来管了。
------解决方案--------------------
JDK包含JRE,JRE包含JVM。
假如你是一个程序开发人员,那么你需要安装JDK来开发程序;

假如你是一个使用者(客户),那么你没必要开发JAVA程序,你只需要使用它就行,这时你只需安装JRE来运行它。

不管你是开发者还是使用者,要想使JAVA程序运行起来,那么就要靠JVM。

个人理解。。。
------解决方案--------------------
把自己装的jdk环境变量移到path的前面,因为oracle也带了一个低版本的jre,且也写到了环境变量里。所以你运行的javac是最新的,而运行的java.exe是oracle中老的
------解决方案--------------------
安装oracle的时候,一定要注意它修改你的环境变量,一般情况下,先安装oracle,后设置JDK的环境变量就没什么问题,当然,如果你先设置的JDK的环境变量,后安装的oracle,你也可以讲JDK的环境变量path中的值放到oracle的环境变量的后面,这样就没什么问题了
------解决方案--------------------
oracle也带了一个低版本的jre,且也写到了环境变量里,修改一下
------解决方案--------------------
JDK版本问题
你现在DOS中执行java -version查看具体JDK版本
然后再在环境变量ClassPath中将正确的JDK放在最前面即可。
------解决方案--------------------
JDK java开发工具包,包括一些类库的jar包、源码、api 什么的。。
JRE java运行环境,是虚的东西,依赖的jar包、一些环境变量的配置,jvm要依赖与这个环境才能运行
JVM 就是鼎鼎大名的java虚拟机了,你的程序就在这玩意里运行的,编译class、加载类、内存分配、垃圾回收。。。等等 都是这家伙干的。。
------解决方案--------------------
jdk: java开发环境,包含了: javac编译器,java虚拟机(jvm),rt.jar核心类库,src.zip源代码等。 
jre: java运行环境,包含了:java虚拟机(jvm),rt.jar核心类库等。