2011-03-21 33 views
0

我想編譯一個使用javac的軟件。問題是我刪除打開jdk使用yum刪除並下載sun jdk並將其安裝在/usr/java文件夾中。使用openjdk1.6或sun編譯代碼jdk1.6

我不知道如何弄清楚當前的jvm是openjdk running還是sunjdk。

我從/usr/bin文件夾中刪除了java和javac文件,並使PATH變量包含/usr/java/jdk1.6-0/bin中的新路徑。

我每次重新啓動系統時仍然會在bin文件夾中看到java文件。

有人能幫助我嗎?

此外,如果這會是有幫助的,我嘗試編譯軟件和它提供了以下警告:

List是原始類型。引用 泛型類型列表應 參數

我想這是因爲開放式的JDK。我無法弄清楚如何完全刪除open-jdk。

謝謝

+0

您的'/ usr/bin'中的'java和javac'可能只是您的linux distro/jdk複製的軟鏈接。 – asgs 2011-03-21 22:34:58

回答

2
  1. 從應用程序行爲的角度來看,OpenJDK和等效的Oracle JDK之間應該沒有察覺到的差異。這些差異在JVM的低級別下降了;例如JIT編譯器和垃圾收集器的性能改進。

  2. 如果您需要告訴您實際運行的是哪個版本,請使用java -version或(在正在運行的應用程序中)查看對象System.getProperties()中的屬性。 (javadoc解釋了期望的標準屬性。)

  3. 有關原始類型的消息與您的系統是OpenJDK還是Oracle JDK無關。您將得到與所有Java 5/6/7編譯器類似的警告消息......包括來自IBM和其他地方的編譯器。

    實際的問題出在您正在編譯的代碼中。您可以放心地忽略短期內的警告......或者如果代碼必須在Java 5以前版本的JVM上保持可編譯/可運行。

+1

我想它是'java -version'。 – asgs 2011-03-21 22:29:36

+0

@asgs - 固定... – 2011-03-21 22:32:46

0

關於環境細節,真的沒有什麼可擔心的。您只需要參考您的Collection類,如您的javac警告指示。瞭解generics。同時發佈您的代碼,以便我們可以查明警告。

0

正如其他人提到的,不同的JVM沒有什麼可擔心的。在控制檯中使用java -version來確定它是哪一個。

至於原始類型消息,您可能使用的是一般類而不指定類型。即您使用List而不是List<String>。如果您不需要某個類型,或者將其明確設置爲某個類型,則可以簡單地將其設置爲List<?>