5

Java プロジェクトが 2 つの jar ファイルを生成できるかどうかを検討していました。

したがって、java6 jar を生成するには、コマンド ラインは次のようになります。

javac -target 1.6 -bootclasspath jdk1.6.0\lib\rt.jar -extdirs "" MyApp.java

残念ながら、単にエラーが発生します。

javac: target release 1.6 conflicts with default source release 1.7

このドキュメントによると、jdk6 と jdk5 では可能であるはずですが、jdk7 と jdk6 で機能しない理由を知っている人はいますか? 私は何か間違ったことをしましたか、それとも公式にサポートされていないだけですか?

ありがとう。

4

2 に答える 2

5

私の知る限り、ソースとターゲットは同じでなければなりません。Java 6 の場合でも。唯一の例外は、ソースが 1.1 でターゲットが 1.0 であることです。

Java 6 用の最新の JVM と Java 7 用の最新の JVM の間で JVM にほとんど違いがないことを考えると、アップグレードを検討することをお勧めします。また、Java 6 は、3 か月後の 2012 年 11 月に (無料) サービスが終了します...

于 2012-08-31T07:59:14.513 に答える
2

たとえそれが可能であったとしても、それは一般的には悪い考えです。コードが Java 6 で動作することを確認したい場合は、Java 6 でビルドする必要があります。Java の新しいバージョンごとに、クラス ライブラリに新しいクラスが導入され、新しいクラスが追加されます。メソッドを既存のクラスに追加したり、Java 7 コンパイラを設定して 6 互換のバイトコードを生成したとしても、7 のみのメソッドを呼び出すケースは捕捉されません。

于 2012-08-31T08:03:06.577 に答える