Java 7コンパイラでコンパイルされたコードを実行するには、Java 7 JVMが必要ですか?
はい。
Java 7コンパイラを使用してコンパイルする-target 6.0
ことはできますが、コードがJava 7に依存している場合(特定のクラスライブラリ...)、それは役に立ちません。
もしそうなら、JVM 7がインストールされていない/そのプラットフォームで利用できないクライアントマシン(古いOSX、Windows XPなど)であらゆる種類の問題が発生しますか?
はい。それは確かに「インストールされた」フロントの場合です。コードがJava7に依存している場合、最良のオプションは、顧客にJava7JVMをインストールして実行させることです。(Javaの複数のバージョンを並べてインストールするのは簡単なことであり、他のJavaアプリがJava 7 JVMで正常に動作する可能性があります。)
「利用可能な」面では、Oracleが実際にJava 7をリリースするまで、どのプラットフォームがサポートされるかはわかりません。サポートされていない重要なプラットフォームがある場合は、次のいずれかの可能性があります。
- 誰かがOpenJDK7をプラットフォームに移植するか、または
- サードパーティベンダー(IBMなど)は、 Java7製品でそれをサポートします。
(しかし、私はWindows pre-XPをサポートしている人には賭けません、そして古いバージョンのOSXは疑わしいです、IMO。)
私のアドバイスは、Java7に「ジャンプ」しないことです...まだ...古いプラットフォームをサポートすることが重要な要件である場合。