繁体   English   中英

使用openjdk1.6或sun jdk1.6编译代码

[英]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。

谢谢

  1. 从应用程序行为的角度来看,OpenJDK与等效的Oracle JDK之间应该没有明显的区别。 差异在JVM的低级别下降; 例如,JIT编译器和垃圾收集器的性能改进。

  2. 如果您需要告诉您实际运行的是哪个版本,请使用java -version或(在正在运行的应用程序中)查看对象System.getProperties()中的属性。 (javadoc解释了期望的标准属性。)

  3. 有关原始类型的消息与您的系统是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM