我正在尝试使用javac编译软件。问题是我使用yum删除了open-jdk并下载了sun jdk并将其安装在/usr/java
文件夹中。
我不知道如何判断当前的jvm是运行openjdk还是sunjdk。
我从/usr/bin
文件夹中删除了java和javac文件,并使PATH变量包含/usr/java/jdk1.6-0/bin
中的新路径。
每次重新启动系统时,我仍然会在bin
文件夹中看到java文件。
有人可以帮我这个吗?
此外,如果这会有所帮助,我正在尝试编译软件,它会发出以下警告:
列表是原始类型。参考 通用类型列表应该是 参数
我认为这是因为open-jdk。我无法弄清楚如何完全删除open-jdk。
谢谢
答案 0 :(得分:2)
从应用程序行为的角度来看,OpenJDK和等效的Oracle JDK之间应该没有明显的区别。差异在JVM的低级别下降;例如JIT编译器和垃圾收集器的性能改进。
如果您需要告诉您实际运行的是哪个版本,请使用java -version
或(在正在运行的应用程序中)查看对象System.getProperties()
中的属性。 (javadoc解释了期望的标准属性。)
有关原始类型的消息与您的系统是OpenJDK还是Oracle JDK无关。您将获得与所有Java 5/6/7编译器类似的警告消息...包括来自IBM和其他地方的编译器。
实际问题出在您正在编译的代码中。您可以在短期内安全地忽略该警告...或者如果代码必须在Java 5 JVM之前保持可编译/可运行。
答案 1 :(得分:0)
对于环境细节,真的没有什么可担心的。您只需参数化Collection
类,就像javac
警告所示。了解generics
。同时发布您的代码,以便我们可以查明警告。
答案 2 :(得分:0)
正如其他人提到的,不同的JVM无需担心。在控制台中使用java -version
来确定它是哪一个。
对于原始类型消息,您可能正在使用Generic类而未指定类型。即您使用List
代替List<String>
。如果您不想要类型,可以简单地将其设置为List<?>
,或者将其明确设置为类型。