web-dev-qa-db-ja.com

現在のJSFバージョンを検出する方法は?

Jsf-webappを開発していますが、使用しているJSF-Versionを知る必要がありますか?これはどこで調べられますか?前もって感謝します。

27
Jochen

プログラム的に、ということですか? Package#getImplementationVersion() から取得できます。

_String version = FacesContext.class.getPackage().getImplementationVersion();
_

ちなみに getImplementationVendor() および getImplementationTitle() メソッドもあります。ベンダー(MyFacesやMojarraなど)を区別するためにそれを使用することもできます。

それとも手動でですか? JSF impl JARファイルの_/META-INF/MANIFEST.MF_ファイルを調べるだけです。 JARファイルはZipツールで抽出できます。これは、マニフェストファイルの_Implementation-Version_エントリです。

43
BalusC

私にとっては、WebSphereサーバーでは機能しなかったので、ピーターの コメント に従いました:

System.out.println("JSF API Location: " + FacesContext.class.getProtectionDomain().getCodeSource());
System.out.println("JSF Impl Location: " + Facelet.class.getProtectionDomain().getCodeSource());

それは私にライブラリのファイル名のバージョンを示しました:

JSF APIの場所:(file:/ C:/workspaces/spielwiese/wlp/dev/api/spec/com.ibm.websphere.javaee。jsf.2.2_1.0.18。jar)

JSF実装場所:(file:/ C:/workspaces/spielwiese/wlp/dev/api/spec/com.ibm.websphere.javaee。jsf.2.2_1.0.18。jar)