JDK问题 一台机器可以装多个jdk吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,记得编译运行时选好版本:[code=BatchFile]javac -target 1.6 HelloWorld.javajava -version:1.6 HelloWorld[/code] 一台机器可以装多个jdk。但是path环境变量里面只能对应其中的一个。如果要使用其它的jdk,需要改变path变量或者用绝对路径指定javac和java命令。4楼说的不太对。-target参数是指定编译出的中间码是什么版本格式。与多个jdk无关。比如jdk1.6可以编译出1.4或者1.5版本的中间码来。 啊,这样啊,太麻烦了,我看还是算了,到家里的机器装1.6吧还有个问题,就是以前装别的软件的时候不是有时要指定JDK的吗,那我把以前装的jdk卸载了,装1.6,那之前装的那些软件会有问题吗 应该会有问题,因为你在为那些软件指定jdk的时候,已经把一起jdk的路径告诉它了,现在你把以前的jdk删掉了。那些软件找不到那个目录就会出问题。不过这个时候软件一般都会从新询问你jdk的安装路径。你从新指定一个就行了。 胡扯,你拿 1.6 编译出来的(特别是用到了新增 API 或范型的应用)到 1.4 下跑跑试试。 你自己打javac -help看看不就知道了吗。看看说明,然后跟大家解释一下。 在安装 JRE 或 JDK 时,安装程序会将 java.exe,javacpl.cpl(提供控制面板中那个图标对应的 Java 运行环境设置功能),javaw.exe,javaws.exe 这四个文件复制到 X:\WINDOWS\system32 文件夹下,如果按照从老版本到新版本的顺序安装,就可以保证是新版本的 java.exe 覆盖老版本的此文件,而最新版的 java.exe 提供了以此前老版本相兼容的模式启动 JVM 的功能,这才是 java -version:1.6 HelloWorld 的真正含义,而在 path 环境变量里有 %SystemRoot%\system32 这项,所以即使不把 java.exe 的路径追加(加到已有的末尾)到 path 环境变量里也能正常启动 Java 程序。如果加了,也是在前面 %SystemRoot%\system32 里的 java.exe 首先被找到拿它来启动 JVM 的。-target 确实如 7 楼所说,是以相应的版本生成与之相兼容的字节码,但别忘了,JRE 类库并不是向前兼容的,1.6 里新增的类和方法老版本 JRE 类库中是没有的,除非不使用任何新增特性,否则在老版本 JRE 里运行没戏。另外网上经常说 1.5 新增的范型用法并没有改变 JVM 的实现,而只是用了些“语法糖”,但实际上 JVM 层面的更改是有的(非常小),如果不使用高级范型用法没问题,但一旦用到了也基本会把老版本 JVM 搞傻,使用的时候得加倍小心。 引用 7 楼 qj123456_0 的回复:一台机器可以装多个jdk。但是path环境变量里面只能对应其中的一个。如果要使用其它的jdk,需要改变path变量或者用绝对路径指定javac和java命令。 4楼说的不太对。-target参数是指定编译出的中间码是什么版本格式。与多个jdk无关。比如jdk1.6可以编译出1.4或者1.5版本的中间码来。 虽然我没试过,但是应该可以的.增加了泛型应用但是以前的语法在1.5中是没错.1.6没试过不知道.觉得应该也是可以的. 这么麻烦的话,那如果我要使用更高版本的JDK,而且不影响以前的软件,有什么好的办法可以折衷的啊 说那么多还不如试一试。我写了个带泛型的例子,在jdk1.6的环境下。想用javac -target 1.4 Test.java的方法去编译,结果根本编译不了,提试:target release 1.4 conflicts with default source release 1.5。也就是说必须指定-source 1.4才可以,但是指定了-source 1.4之后显然不对。因为带泛型的源码是不符合1.4的语法规范的。所以会出现编译错误。但是如果我写一个很简单的System.out.println("hello");这样的程序,就可以用javac -target 1.4 -source 1.4 Test.java的方法来编译,编译后的class文件就可以在1.4的jre下面运行了。 俺是搞开发的,我机器上有个1.6和1.4的JDK,可是我的开发的软件需要1.4的如果在1.6下编译回说错误。好在Eclipse有选择的JDK的地方,只要选对啦就好用,完全没有问题。而且,大家可能在装orcle的时候装的是1.3的jdk,但是如果把环境变量配好,就没有问题 这跟你机器里面安装的软件如何寻找JDK(JRE)有关系,比如说,Oracle就自己带着jre,所以不管你环境的jre如何变化,都不会影响到Oracle的使用。但是Path里设置的JDK路径只能有一个就对了。 oracle是不会影响,那其他的软件呢,难道我卸载掉现在的jdk,装高版本的jdk,但是安装目录的名字还是和老的一样,这样的话path就不会变了,这样也不会影响以前的软件使用吧 这个不敢保证,因为在低版本jre下能够运行的软件不能保证在高版本jre下就一定可以正常运行,不过这个问题你不用担心。这是那些软件的提供商需要注意的问题,一般对jre版本有特殊要求的软件都会自带jre的。我们公司的软件就是这样的。 JDK装多少没有关系的。运行时候指定下就可以了 请教个新手问题,关于System.out.print("\t")的 java 获得泛型里的方法 根据鼠标位置插入字符 这个问题有谁见过,怎么解决的? 简单问题在线等 文件上传下载问题,请看代码. Jtree带有复选框功能实现了,如果获取被选中项(复选框勾选了的)??求解、非常感谢 参与就有分$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(100分) RFID酒类防伪 ResultSet浏览只能用next()! 我错在哪里? 请教 如何用java获取CPU使用率 我用的操作系统是windows xp java打包问题,打成的包怎样双击才能运行
java -version:1.6 HelloWorld[/code]
4楼说的不太对。-target参数是指定编译出的中间码是什么版本格式。与多个jdk无关。比如jdk1.6可以编译出1.4或者1.5版本的中间码来。
还有个问题,就是以前装别的软件的时候不是有时要指定JDK的吗,那我把以前装的jdk卸载了,装1.6,那之前装的那些软件会有问题吗
胡扯,你拿 1.6 编译出来的(特别是用到了新增 API 或范型的应用)到 1.4 下跑跑试试。
在安装 JRE 或 JDK 时,安装程序会将 java.exe,javacpl.cpl(提供控制面板中那个图标对应的 Java 运行环境设置功能),javaw.exe,javaws.exe 这四个文件复制到 X:\WINDOWS\system32 文件夹下,如果按照从老版本到新版本的顺序安装,就可以保证是新版本的 java.exe 覆盖老版本的此文件,而最新版的 java.exe 提供了以此前老版本相兼容的模式启动 JVM 的功能,这才是 java -version:1.6 HelloWorld 的真正含义,而在 path 环境变量里有 %SystemRoot%\system32 这项,所以即使不把 java.exe 的路径追加(加到已有的末尾)到 path 环境变量里也能正常启动 Java 程序。如果加了,也是在前面 %SystemRoot%\system32 里的 java.exe 首先被找到拿它来启动 JVM 的。-target 确实如 7 楼所说,是以相应的版本生成与之相兼容的字节码,但别忘了,JRE 类库并不是向前兼容的,1.6 里新增的类和方法老版本 JRE 类库中是没有的,除非不使用任何新增特性,否则在老版本 JRE 里运行没戏。另外网上经常说 1.5 新增的范型用法并没有改变 JVM 的实现,而只是用了些“语法糖”,但实际上 JVM 层面的更改是有的(非常小),如果不使用高级范型用法没问题,但一旦用到了也基本会把老版本 JVM 搞傻,使用的时候得加倍小心。
一台机器可以装多个jdk。但是path环境变量里面只能对应其中的一个。如果要使用其它的jdk,需要改变path变量或者用绝对路径指定javac和java命令。
4楼说的不太对。-target参数是指定编译出的中间码是什么版本格式。与多个jdk无关。比如jdk1.6可以编译出1.4或者1.5版本的中间码来。 虽然我没试过,但是应该可以的.增加了泛型应用但是以前的语法在1.5中是没错.1.6没试过不知道.觉得应该也是可以的.
如果在1.6下编译回说错误。好在Eclipse有选择的JDK的地方,只要选对啦就好用,完全没有问题。
而且,大家可能在装orcle的时候装的是1.3的jdk,但是如果把环境变量配好,就没有问题