0

私は cloudsim3.0 プロジェクトに基づく大学プロジェクトに取り組んでいます。cloudsimがjdk 1.3を使用している間、私はjdk 7を使用しています。for-eachしたがって、ジェネリック、ループなど、すべてを変更する必要があります。NetBeans から受け取ったエラーの一部は次のとおりです。

  • ジェネリックは -source1.3 ではサポートされていません (-source7 以降を使用してください ...)
  • スイッチ内の文字列は -source1.3 ではサポートされていません (-source7 以降を使用してください ...) ...

jdk のバージョンを 1.3 から 7 に変更するにはどうすればよいですか? ありがとう

4

2 に答える 2

1

一般に、デプロイ先よりも上位の Java バージョンでの開発には細心の注意を払う必要があります。Netbeans が使用する JDK の Java コンパイラは、Java 7 ソースの 1.3 バイトコードへのコンパイルをサポートしていないため、別のコンパイラを使用する必要があります。

私はJava 1.4をターゲットにするためにしばらく前にこれを調査しました.EclipseコンパイラはEclipse内で直接使用することも、ecj(コマンドラインからのjavacドロップイン置換)として使用することもできます。これはant内で使用できます。バイトコードを以前のバージョンに積極的に変換する Retroweaver を使用できます。

なんらかの理由でコードが機能しない場合に調査する必要があるものから、これらすべての魔法の弾丸が削除されるため、弾丸を噛んでプロジェクトに Java 1.3 を使用することを検討することもできます。

于 2012-06-10T12:15:03.963 に答える
1

あなたの質問は少し混乱していますが、Java 7 ソースコードを JDK 1.3 用にコンパイルする方法を尋ねているのであれば、最も理にかなっています。

そして答えは、できないということです。これらの構造 (ジェネリック、for-each ループ、文字列スイッチ) にはすべて、より最新のターゲット プラットフォームが必要です。

理論的には、次の 2 つの解決策が考えられます。

  • コードからすべての Java 5、6、7-isms を削除し、.xml でコンパイルし-source 1.3 -target 1.3ます。(または、古い Java 1.3 JDK をダウンロードしてインストールします。)

  • Java 7 JVM を使用して CloudSim3.0 コードを実行します。修正された古いバグに依存しない限り、動作するはずです。

于 2012-06-10T12:15:28.523 に答える