![](/img/trans.png)
[英]In the JDK 1.6 compiler, what does “-source 1.6” enable, if anything?
[英]Compiling code using openjdk1.6 or sun jdk1.6
我正在尝试使用javac编译软件。 问题是我使用yum删除了open-jdk并下载了sun jdk并将其安装在/usr/java
文件夹中。
我不知道如何判断当前的jvm是openjdk运行还是sunjdk。
我从/usr/bin
文件夹中删除了java和javac文件,并使PATH变量包含/usr/java/jdk1.6-0/bin
的新路径。
每次重新启动系统时,我仍然会在bin
文件夹中看到java文件。
有人可以帮我这个吗?
此外,如果这将有所帮助,我正在尝试编译软件,它给出以下警告:
列表是原始类型。 应参数化对泛型类型List的引用
我认为这是因为open-jdk。 我无法弄清楚如何完全删除open-jdk。
谢谢
从应用程序行为的角度来看,OpenJDK与等效的Oracle JDK之间应该没有明显的区别。 差异在JVM的低级别下降; 例如,JIT编译器和垃圾收集器的性能改进。
如果您需要告诉您实际运行的是哪个版本,请使用java -version
或(在正在运行的应用程序中)查看对象System.getProperties()
中的属性。 (javadoc解释了期望的标准属性。)
有关原始类型的消息与您的系统是OpenJDK还是Oracle JDK无关。 您将获得与所有Java 5/6/7编译器类似的警告消息...包括来自IBM和其他地方的编译器。
实际问题出在您正在编译的代码中。 您可以在短期内安全地忽略该警告......或者如果代码必须在Java 5之前的JVM上保持可编译状态/ runnable。
环境细节真的没什么值得担心的。 您只需要像javac
警告所示参数化您的Collection
类。 了解generics
。 同时发布您的代码,以便我们可以查明警告。
正如其他人提到的,不同的JVM无需担心。 在控制台中使用java -version
来确定它是哪一个。
至于原始类型消息,您可能正在使用Generic类而不指定类型。 即你使用List
而不是List<String>
。 如果您不想要类型,则可以将其设置为List<?>
,或者将其显式设置为类型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.