2012-07-06 18 views
17

自分の.java(複数)を少なくともJava 1.6以上、好ましくはJava 1.5以上のJavaと互換性のある1つの.jarにコンパイルしたいと思います。 (私はJava 1.7.0_5を持っています)古いバージョンのJavaをサポートする.javaをコンパイルするにはどうすればよいですか?

+0

http://www.veryant.com/support/phpkb/question.php?ID=57 – Mualig

+0

'javac -source 1.5 -target 1.5 OverridingInternalExample.java'が私のために働いています –

答えて

13

-source

はい、あなたはコンパイル時にコンパイラのバージョンを設定することができます。 Javaの古いバージョンにJavaコードをコンパイルします。オラクルの記事から

http://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javac.html

クロスコンパイルの例

ここでは、1.4 VM上で実行するコードをコンパイルするためにjavacのを使用しています。

% javac -target 1.4 -bootclasspath jdk1.4.2/lib/classes.zip \ 
      -extdirs "" OldCode.java 

コードのバージョンを示すには、次のパラメータも必要です。

-source release 

- 受け入れたソースコードのバージョンを指定します。 JDK 9、javacのサポートあなたは、ビルドのJavaよりも低く、コンパイラのターゲットバージョンを指定することができます

javac -source N -target N –bootclasspath rtN.jar 
2

javac -target 1.5 <source files>を使用することができます。

jarsをビルドするためにビルドシステム、Eclipse、または他のIDEを使用している場合は、どちらを指定してください。

+1

' -source 1.5 ' –

+0

私はnetbeansを持っていますが、私はテキストファイルを使うことができます。ディレクトリ内のすべての.javaにどのように適用しますか? – Primm

+1

netbeansでプロジェクトを右クリックし、プロパティに移動して、開いているダイアログの下部にあるドロップダウンから「ソース/バイナリ形式」を変更します – tofarr

0

最新バージョンのJDKを使用し、ソースレベルを1.5に設定することができます.1.5以降で導入されたクラス/メソッドを使用しない限り、JVM 1.5以上のすべてのバージョンでOKです。 :1.5

0

あなたは実際のターゲットバージョンのクラスライブラリを提供している場合にのみ動作するので、かなり面倒です。あなたがそうするならば、この古いJavaバージョンをコンパイルするだけで、あなたはずっと良くなっています。よりクリーンでセットアップに必要なものが少なくなりました。 Java 9の場合、オプションは少し良くなりますが、rt.jarには古いJDKが必要です。

あなたが行うことができるのは、-target/-bootclasspathトリックを使用してコンパイラと警告を高速化することですが、ITおよびリリースビルドはターゲットバージョンで行う必要があります。

0

と等価であるクロスコンパイル

javac -release N ... 

ための新しいオプションのよう

関連する問題