@ [Java]J2SE5対応のソースコードをJ2SE1.4向けにコンパイル
ソースコードはJ2SE5で書きたいが、システムはまだまだJ2SE1.4/1.3で動いているので現場の開発でJ2SE5で拡張された文法を使えずに苛立っているプログラマはいないだろうか?そういう場合は、J2SE5の文法でコードを書いて、ソースを1.5に指定して、ターゲットを1.4に指定してコンパイルすればすればいいように思う。しかし、
$ javac -source 1.5 -target 1.3 Hage.java
javac: リリース 1.5 のソースにはリリース 1.5 のターゲットが必要です。
というように、targetを1.5にしないとコンパイルできない。結局、J2SE5の文法で書いたコードからはJ2SE5用のバイナリしか生成できない。しかし、下記のパッチをEclipseのコンパイラに当てるとJ2SE5のソースから1.4以前のJDK用のバイナリを生成することができるようになる。J2SDK1.4や1.3を利用した開発でGenericやAutoboxing
等のJ2SE5で拡張された構文の恩恵を受けれるようになり意外と便利。ただし、J2SE5で追加されたAPIを利用すると動かないので注意。
--- org/eclipse/jdt/internal/compiler/batch/Main.java.org 2005-11-27 09:03:49.431403200 +0900
+++ org/eclipse/jdt/internal/compiler/batch/Main.java 2005-11-27 08:58:49.069504000 +0900
@@ -2344,6 +2344,7 @@
if (!didSpecifyTarget) this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
}
}
+ /*
// check and set compliance/source/target compatibilities
if (didSpecifyTarget) {
// target must be 1.5 if source is 1.5
@@ -2361,6 +2362,7 @@
throw new InvalidInputException(Main.bind("configure.incompatibleComplianceForTarget", (String)this.options.get(CompilerOptions.OPTION_Compliance), (String)this.options.get(CompilerOptions.OPTION_TargetPlatform))); //$NON-NLS-1$
}
}
+ */
// compliance must be 1.5 if source is 1.5
if (this.options.get(CompilerOptions.OPTION_Source).equals(CompilerOptions.VERSION_1_5)
&& CompilerOptions.versionToJdkLevel(this.options.get(CompilerOptions.OPTION_Compliance)) < ClassFileConstants.JDK1_5) {
実行は、次のような感じ。
$ java -classpath /usr/local/eclipse/plugins/org.eclipse.jdt.core_3.1.1.jar"
org.eclipse.jdt.internal.compiler.batch.Main -target 1.3 -source 1.5 Hage.java
Great work!<br>[url=http://eleuncyq.com/apqy/buhw.html]My homepage[/url] | [url=http://cxuwmbny.com/atwh/upoh.html]Cool site[/url]
xR5Ca6Ap86cZ9pv Diet Drug Phentermine http://christ77.power-emergency.com
tBWmDZJPkbiq Diet Drug Phentermine http://christ77.power-emergency.com
cheap@levitra.com
cheap@levitra.com
cheap@levitra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com
cheap@cialis.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com
cheap@cialis.com
cheap@cialis.com
cheap@cialis.com
cheap@cialis.com
cheap@cialis.com
cheap@viagra.com
cheap@levitra.com
cheap@viagra.com
cheap@cialis.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
ixjgq mxtaoufv tdxfg frqdls acvpjhw toijgzb vpkqlodns
pdvekjs ohnfadytg jroqlavkz riukenfht oblutg sfpevom ecmkpwun http://www.emyzgja.wymxbzk.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
sale@mp3.com
Nice site!<br>[url=http://zqobhjlj.com/wtsl/rvdn.html]My homepage[/url] | [url=http://bslekaks.com/dzpl/ompc.html]Cool site[/url]
cheap@cialis.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com
cheap@cialis.com
cheap@levitra.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com
cheap@viagra.com
cheap@cialis.com
cheap@cialis.com
cheap@cialis.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com
cheap@cialis.com
cheap@viagra.com
cheap@viagra.com
cheap@viagra.com
cheap@cialis.com