0

javac を使用してソフトウェアをコンパイルしようとしています。問題は、yum remove を使用して open-jdk を削除し、sun jdk をダウンロードして/usr/javaフォルダーにインストールしたことです。

現在の jvm が openjdk を実行しているか、sunjdk を実行しているかを確認する方法がわかりません。

フォルダーから java ファイルと javac ファイルを削除し/usr/bin、PATH 変数に新しいパスが含まれるようにしました/usr/java/jdk1.6-0/bin

binシステムを再起動するたびに、フォルダーに Java ファイルが表示されます。

誰かがこれで私を助けることができますか?

また、これが役立つ場合は、ソフトウェアをコンパイルしようとしていますが、次の警告が表示されます。

リストは生の型です。ジェネリック型リストへの参照はパラメータ化する必要があります

open-jdkのせいだと思います。open-jdk を完全に削除する方法がわかりません。

ありがとう

4

3 に答える 3

2
  1. アプリケーションの動作の観点からは、OpenJDK と同等の Oracle JDK の間に目に見える違いはないはずです。違いは、JVM の低レベルでは小さくなっています。たとえば、JIT コンパイラとガベージ コレクタのパフォーマンスの向上。

  2. 実際に実行しているバージョンを確認する必要がある場合は、 を使用するjava -versionか、(実行中のアプリケーションで) オブジェクトのプロパティを調べますSystem.getProperties()。(javadoc では、期待される標準プロパティについて説明しています。)

  3. raw 型に関するメッセージは、システムが OpenJDK であるか Oracle JDK であるかとは関係ありません。すべての Java 5 / 6 / 7 コンパイラで同様の警告メッセージが表示されます... IBM や他の場所のコンパイラを含みます。

    実際の問題は、コンパイルしているコードにあります。短期的には警告を安全に無視できます...または、Java 5 より前の JVM で /runnable によってコードをコンパイル可能のままにしておく必要がある場合。

于 2011-03-21T22:25:50.620 に答える
0

環境の詳細については、特に心配する必要はありません。警告が示すCollectionように、クラスをパラメータ化するだけです。javacについて学びgenericsます。警告を特定できるように、コードも投稿してください。

于 2011-03-21T22:25:10.157 に答える
0

他の人が言ったように、異なる JVM は心配する必要はありません。java -versionコンソールで使用して、それがどれであるかを判断します。

生のタイプ メッセージに関しては、タイプを指定せずに Generic クラスを使用している可能性があります。Listつまり、の代わりに使用しますList<String>。タイプが必要ない場合は単純に設定するList<?>か、明示的にタイプに設定できます。

于 2011-03-21T22:36:25.340 に答える