簡體   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