JavaアプレットをホストするASP.NETWebサイトがあります。Javaアプレットには、Javaランタイムのバージョン1.6Update11が必要です。
クライアントに適切なランタイムがインストールされていることを検出して、インストールされていない場合に有益なメッセージを表示できるようにするにはどうすればよいですか?
ありがとう、
カール。
編集:ソリューションはプラットフォームに依存しない必要があります。
JavaアプレットをホストするASP.NETWebサイトがあります。Javaアプレットには、Javaランタイムのバージョン1.6Update11が必要です。
クライアントに適切なランタイムがインストールされていることを検出して、インストールされていない場合に有益なメッセージを表示できるようにするにはどうすればよいですか?
ありがとう、
カール。
編集:ソリューションはプラットフォームに依存しない必要があります。
このページでは、JavaScriptを使用してJavaを検出する方法といくつかのプラグインを一覧表示します。http ://www.pinlady.net/PluginDetect/JavaDetect.htm
それ以外に、このスニペットも試してみてください。
if (navigator.javaEnabled()) {
//Java is enabled
}
以下のリンクでは、Java アプリの展開のヒントについて詳しく説明しています。
http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html
リンク先より引用
デプロイメント ツールキット ブラウザの互換性の問題を回避するために、デプロイメント ツールキット ( deployJava.js ) には、アプレットおよび Java Web Start アプリケーションのデプロイに必要な HTML を自動的に生成する JavaScript 関数が用意されています。開発者は、これらの関数を呼び出して、さまざまなブラウザー間で一貫した方法でソリューションをデプロイする必要があります。
はるかに古いバージョンを実行する必要がある基本的な Java アプレットを使用してもかまわない場合は、この記事を使用して、その結果に基づいて続行できます。
これをチェックして
http://simple-java-detection-script.blogspot.com/2010/03/simple-browser-java-installed-or.html
deployJava.js関数 getJREs() を使用して、ユーザーの Java バージョンに応じて動的ページを構築します。
http://cowwoc.blogspot.com/2008/12/tracking-java-versions-using-google.htmlを使用して、Google アナリティクスを使用して Web 訪問者が使用している Java のバージョンを追跡します。
ボーナス ステップ:ステップ 1 の実装方法の例として、ステップ 2のソース コードを使用します。
たぶん、このスクリプトが役立ちます。ただし、これは Windows のみです。
<script language='javascript' type='text/javascript'>
var javaVersion;
var shell;
try
{
// Create WSH(WindowsScriptHost) shell, available on Windows only
shell = new ActiveXObject("WScript.Shell");
if (shell != null)
{
// Read JRE version from Window Registry
try
{
javaVersion = shell.regRead("HKEY_LOCAL_MACHINE\\Software\\JavaSoft\\Java Runtime Environment\\");
}
catch(e)
{
// handle exceptions raised by 'shell.regRead(...)' here
// so that the outer try-catch block would receive only
// exceptions raised by 'shell = new ActiveXObject(...)'
alert('error reading registry');
}
}
}
catch(e)
{
// Creating ActiveX controls thru script is disabled
// in InternetExplorer security options
// To enable it:
// a. Go to the 'Tools --> Internet Options' menu
// b. Select the 'Security' tab
// c. Select zone (Internet/Intranet)
// d. Click the 'Custom Level..' button which will display the
// 'Security Settings' window.
// e. Enable the option 'Initialize and script ActiveX controls
// not marked as safe'
activeXDisabled = true;
}
// Check whether we got required (1.6) Java Plugin
if ( javaVersion != null && javaVersion.indexOf("1.6"))
{
pluginDetected = true;
alert('it is installed!')
}
if (pluginDetected)
{
// show applet page
}
else if (confirm("Java Plugin 1.6 not found"))
{
// show install page
alert('not found')
}
else
{
// show error page
alet('error')
}
</script>
ソリューションがプラットフォームに依存しない必要がある場合。JavaScript によって提供されるすべてのソリューションを除外します。
古いクラシック VM をサポートする非常に単純なアプレットを作成できます。アプレットに JRE のバージョンを検出させ、メッセージを表示させます。
Javascript を受け入れる場合は、WebStart アプリケーションの自動インストーラーに関するこの記事にも興味があるかもしれません。
以下のリンクは、私がそれを機能させる方法でした。Java デプロイメント用に作成された JS を取得できます。リンクは上で述べましたが、それを使った例がいいと思いました。
これらは、問題を解決するために必要になったサンプルです。
deployJava.js ファイルをダウンロードしたら、Java がインストールされていることを確認するために何かを配置できます。
if (deployJava.getJREs().length > 0) {
//Your code to start java
}
特定のバージョンがインストールされていることを確認します。
if (deployJava.versionCheck(version)) {
//Your version specific code
}
最新の Java のインストーラーを起動します。
deployJava.installLatestJava();
または、必要に応じて特定のバージョン:
deployJava.installJRE(version);
コピーしてブラウザのアドレス バーに貼り付けて確認します。
javascript:alert(navigator.javaEnabled())
Mozilla (FF3) および IE7 で動作します。(x64)