3

JRE_1.6 でテストおよび実行された、Java で記述された小さなアプリケーションがあります。次に、JRE_1.5 に対して実行する必要があります。Java 1.5 の要件に合わせなければならなかったソース コードを変更し、プロジェクトを正常にコンパイルしました。

問題は、Java 1.6 でコンパイルされたような多数のプリコンパイル済みライブラリを使用しているopencsv-2.3ため、それらのクラスのいずれかを呼び出すとjava.lang.UnsupportedClassVersionError.
それらのほとんどはcom.apacheライブラリです + opencsv-2.3+org.jdom

どのライブラリを正確に置き換える必要があるかを知るにはどうすればよいですか? 必要なライブラリを置き換えるにはどうすればよいですか?

Upd: How can I replace part は、実際には「古いライブラリがない場合に何ができるか?」を表しています。コンパイルされたライブラリをダウングレードする方法はありますか、それとも 1.5​​ で同様の解決策を見つけてコードを書き直す必要がありますか?

4

3 に答える 3

5

各ライブラリのマニフェストで次のような行を確認することをお勧めします

Bundle-RequiredExecutionEnvironment: J2SE-1.3
X-Compile-Target-JDK: 1.5
Build-Jdk: 1.5.0_22
Created-By: 1.6.0_21-b07 (Sun Microsystems Inc.)

他のオプションが表示されない場合にのみ作成します。

確実に知る唯一の方法は、ライブラリ内のクラスを例にすることです (すべてのクラスが同じバージョン用にビルドされていると仮定します)。

javap -v -classpath net\sf\trove4j\trove4j\3.0.2\trove4j-3.0.2.jar gnu/trove/list/TLongList | grep version

  minor version: 0
  major version: 49

バージョンの表は

major  minor Java platform version 
45       3           1.0
45       3           1.1
46       0           1.2
47       0           1.3
48       0           1.4
49       0           1.5
50       0           1.6
51       0           1.7
52       0           1.8

詳細についてはhttp://en.wikipedia.org/wiki/Java_class_file

于 2012-11-08T11:19:13.400 に答える
2

@Peter Lawreyとして、たとえばopencvs:

opencvs-2.2

マニフェストファイル(MANIFEST.MF)は、jar内のMETA-INFフォルダーにあります。

于 2012-11-08T11:34:55.597 に答える
0

私は同じ問題を抱えていました.JDK 1.5でopen-csvのソースファイルを再構築しました-問題は解決しました!

于 2013-05-20T14:13:35.407 に答える