PTS:
私は、Javaバージョン1.0に私のコードを下にコンパイルしたいです。
私はまでコンパイルする管理しました1.1
:
$ java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
$ javac -target 1.2 -source 1.2 MyClass.java
(works with some warnings)
$ javac -target 1.1 -source 1.2 MyClass.java
(works with some warnings)
しかし、target
オプションは受け入れていないようです1.0
。
$ javac -target 1.0 -source 1.2 MyClass.java
javac: invalid target release: 1.0
私は、JDK 1.0を対象とするにはどうすればよいですか?
私は自分の欲しい.classファイルとの.jar JDK 1.0を含む、非常に古いもの、など、できるだけ多くのシステム、などの作業にファイルを。(私は、JDK 1.0を実行しているシステムにアクセスすることはできません。)
私はこれまで試しました:
- してコンパイル
ecj-3.0.2.jar
:それはサポートしていません-target 1.0
、最小です-target 1.1
。 - JDK 1.0でコンパイル:私はそれを実行することができませんでした、それは、Linux向けにリリースされませんでした。
- JDK 1.1でコンパイル:私はそれを実行することができませんでした、それは、Linux向けにリリースされませんでした。
- JDK 1.2でコンパイル:Linuxのi386のjavacのバイナリは仕事、私が与えていない障害セグメンテーション。
- JDK 1.3でコンパイル:
javac: invalid target release: 1.0
。 - JDK 1.4でコンパイル:
javac: invalid target release: 1.0
。 - JDK 1.5でコンパイル:
javac: invalid target release: 1.0
。これは、バイナリAMD64 Linuxで最初のJDKです。 - JDK 1.6でコンパイル:
javac: invalid target release: 1.0
。 - JDK 1.7でコンパイル:
javac: invalid target release: 1.0
。 - JDK 1.8でコンパイル:
javac: invalid target release: 1.0
。(私が質問をしたとき、私は、最初にこのエラーが発生しました。)
私はと考えていた理由-target 1.0
5月の仕事は、この答えです:https://stackoverflow.com/a/26148408
PTS:
TL; DRは javac -target 1.1
、それがJDK(1995年9月16日にリリース)> = 1.0.2で動作するであろう(そして後で追加されたクラスやメソッドを使用して)。これは、以前のJDKを公にしようとするために利用されないため、バックより行くことは現実的ではないのです。
javac -target ...
フラグの値は、マイナーな影響を与える(バイト4及び5をオフセット)およびメジャー(バイト6および7をオフセット)の.classファイルに格納されたバージョン番号:
javac -target 1.1
(1995年9月16日にリリース)JDK 1.0.2、JDK 1.1でサポートされている、バージョン45.3を生成します。*(1997年から1902年にリリース)JDK 1.8で、JDK> = 1.2は(1998年から1912年にリリース)。[ ソース ]javac
JDK 1.0.2での(からjdk-1_0_2-win32-x86.exe
で実行、wine
Linux上)バージョン45.3を生成します。- K≥2、(44 + K).0包括までの範囲45.0でJDKリリース1.kサポートクラスファイル形式のバージョン。[ ソース ]
javac -target 1.2
JDK> = 1.2でサポートされている、バージョン46.0を生成します。javac -target 1.3
JDK> = 1.3でサポートされている、バージョン47.0を生成します。javac -target 1.4
JDK> = 1.4でサポートされている、バージョン48.0を生成します。- 等