現在、JavaSE8, JavaEE7を前提に、Wildfly10で動作するJavaEEアプリケーションを開発しています。
先日、JavaSE9がリリースされたので、移行を検討しているのですが、この辺りの実行環境のバージョンに関する基本知識が足りていません。
次のような疑問が浮かんではいるので、教えていただきたいのですが、何か根本的に勘違いしているが故の誤った疑問もありそうに思えています。

  1. JREのversion9はまだ無いのか?
    JDK9は既にダウンロードできるようですが、JRE9のリリースはまたタイミングが異なるのでしょうか?
    現在作っているアプリケーションの動作環境に関して「勝手にJRE9をインストールしないで」とアナウンスしようと思いましたが、まだversion 8しかない様子なので、困惑しています。
    追記:JRE単体でのダウンロードでは、version 9のリリースはまだなのでしょうか?

  2. JRE9環境下で、Wildfly10は動くのか?
    もしJRE9がリリースされインストールできたとして、Wildfly10自体は動作保証がされているのでしょうか?

  3. JavaEE7はJavaSE8を前提としているのか?
    JavaSE9を使いたいなら、それに対応するであろうJavaEE8を待つ必要がありますか?

  4. JRE8環境/Wildfly10環境下で、JDK9を使って開発したアプリケーションは動くのか?
    テストサーバの環境は変えずにJava9の機能を試したいな、とも思っているのですが。
    例えばmodule関係の機能とか、Optional#ifPresentOrElseも便利そうだとか・・・
    .NETとC#で言えば、言語機能として「var」(型推論)が追加されたとしても、それはコンパイラの管轄であり、生成される中間コード上では型が確定していますから、以前のCLRでも実行可能ですよね。
    ※コンパイル時にターゲットフレームワークバージョンの指定がありますが
    一概に動く・動かないと言えるものではないでしょうが、.NETとC#と同じような考え方がJavaの世界でもできるのでしょうか?
    コンパイラが対応していれば良いもの、実行環境も変えなければ動かないもの、・・・
    Optional#ifPresentOrElseとかはJREの中にあるので、実行環境を変えないと実行時エラーでしょうか?