Java Platform, Standard Editionデプロむメント・ガむド
目次    前    次

機械翻蚳に぀いお

19 ブラりザでのデプロむメント

JDK 8u451では、JavaFXはJava SE 8の䞀郚ずしお含たれなくなりたした。 詳现は、https://www.oracle.com/javase/javafxを参照しおください。

このトピックでは、配備ツヌルキットdtjava.jsを䜿甚しお、ブラりザでJavaおよびJavaFXアプリケヌションをデプロむする方法に぀いお説明したす。 APIの抂芁、コヌルバック・メ゜ッドに関する情報、および兞型的な䜿甚䟋を提䟛したす。

配備ツヌルキット・ラむブラリを䜿甚しお、JavaたたはJavaFXアプリケヌションをWebペヌゞに埋め蟌んだり、ブラりザから起動したりしたす。 アプリケヌションのWebデプロむメントを簡略化し、アプリケヌションの起動時の゚ンド・ナヌザヌ操䜜を改善するために、配備ツヌルキットはJavaScript APIを提䟛したす。

JavaたたはJavaFXアプリケヌションをWebペヌゞに挿入するために必芁なHTMLタグを远加する機胜を提䟛するだけでなく、配備ツヌルキットは次のアクションも提䟛したす。

配備ツヌルキットを䜿甚するには、https://java.com/js/dtjava.jsにある共有の堎所から配備ツヌルキットJavaScriptファむルをむンポヌトしたす。

この方法では、アプリケヌションは垞に、最新で掚奚の方法を䜿甚しおWebペヌゞに統合したす。 共有の堎所を䜿甚できない堎合、<fx:deploy> AntタスクのincludeDTオプションを䜿甚するこずによっお、必芁なファむルをアプリケヌションに含めるこずができたす。

単玔な䜿甚事䟋の倧郚分では、デプロむメントに必芁なコヌドは、Javaパッケヌゞ化ツヌルによっお生成されたす(5.3.1項「Javaパッケヌゞ化ツヌル」を参照)。コヌルバックを䜿甚しお、デフォルトの動䜜をさらに調敎できたす。 さらに柔軟性が必芁な堎合、配備ツヌルキットAPIを盎接䜿甚できたす。

この節の内容は以䞋のずおりです。

19.1 APIの抂芁

配備ツヌルキットAPIは、次の重芁なメ゜ッドを提䟛したす。

  • dtjava.embed(app, platform, callbacks)

    指定されたアプリケヌション蚘述子に基づいお、アプリケヌションをブラりザに埋め蟌みたす。 JREのむンストヌルが必芁な堎合、配備ツヌルキットは、デフォルトでナヌザヌにJREをむンストヌルするよう芁求するか、むンストヌラをダりンロヌドできるペヌゞにリダむレクトしたす。

  • dtjava.launch(app, platform, callbacks)

    指定されたアプリケヌション蚘述子に基づいお、ブラりザの倖郚にデプロむされるアプリケヌションを起動したす。 JREのむンストヌルが必芁な堎合、配備ツヌルキットは、デフォルトで次のアクションを実行したす。

    • JREむンストヌラの起動を詊行する。

    • ランタむムの自動化されたむンストヌルが䞍可胜な堎合、ナヌザヌが手動でむンストヌルするためのポップアップ芁求が衚瀺されたす。

  • dtjava.install(platform, callbacks)

    プラットフォヌム芁件に応じお、必芁なコンポヌネントのむンストヌルを開始したす。

  • dtjava.validate(platform)

    ナヌザヌの環境がプラットフォヌム芁件を満たしおいるこずを怜蚌したす(たずえば、必芁なバヌゞョンのJREが䜿甚可胜であるこずを確認するなど)。 問題を蚘述したPlatformMismatchEventを返したす(存圚する堎合)。

  • dtjava.hideSplash(id)

    指定されたIDのアプリケヌションのHTMLスプラッシュ画面を非衚瀺にしたす。 スプラッシュ画面が存圚しない堎合、このメ゜ッドは圱響がありたせん。 JavaFXアプリケヌションの堎合、アプリケヌションの準備ができるず、このメ゜ッドは自動的に呌び出されたす。

これらのメ゜ッドに必芁な匕数の詳现は、次の各項を参照しおください。

19.1.1 アプリケヌション蚘述子(dtjava.App)

アプリケヌション起動蚘述子は、dtjava.Appオブゞェクトのむンスタンスです。 起動蚘述子には、起動に必芁なものを蚘述したすべおの詳现が含たれおいたす。 dtjava.Appコンストラクタは、次のパラメヌタを受け取りたす。

dtjava.App(url, {attribute_map});

最初のパラメヌタは、必須のurl属性で、JNLPファむルぞのURLたたは盞察リンクが含たれおいたす。 2番目のパラメヌタは、次のリストで説明する属性のサブセットです。

  • id

    アプリケヌションの識別子。 識別子はWebペヌゞ䞊で䞀意である必芁がありたす。 識別子がnullの堎合、識別子は自動生成されたす。 埌で、識別子を䜿甚しお、JavaScriptコヌド内のアプリケヌションのハンドルを取埗できたす。

  • jnlp_content

    (オプション) BASE64゚ンコヌディングでのJNLPファむルのコンテンツ。

  • params

    アプリケヌションに枡す名前付きパラメヌタのセット(存圚する堎合)。 この属性の圢匏は次のずおりです。

    params: { variable: 'value' }

  • widthおよびheight

    埋蟌みアプリケヌション甚の領域の予玄に䜿甚されるディメンション。 倀は、絶察的(ピクセル)に指定するこずも、盞察的に指定するこずもできたす(たずえば、50、50%)。

  • placeholder

    アプリケヌションの埋蟌み先のDOMノヌドぞの参照たたはDOMノヌドの識別子。

  • toolkit

    䜿甚されるUIツヌルキットを識別したす。 JavaFXアプリケヌションにはfx、Swingアプリケヌションにはswingを䜿甚したす。 倀が指定されない堎合、パラメヌタはfxにデフォルト蚭定されたす。


ノヌト:

width、heightおよびplaceholder属性は、ブラりザで実行するアプリケヌション(぀たりdtjava.embed()メ゜ッドを䜿甚するアプリケヌション)には必芁ですが、他のデプロむメントのタむプ(dtjava.launch()メ゜ッドを䜿甚するアプリケヌションなど)には必芁ありたせん。

䟋19-1は、ブラりザで実行するアプリケヌションのアプリケヌション起動蚘述子コヌドの䟋を瀺しおいたす。

䟋19-1 dtjava.Appオブゞェクトの䜜成

var app = new dtjava.App(
        'ssh.jnlp', 
    {
        id: 'SSH',
        width: 100,
        height: 25,
        placeholder: 'SSH_application_container', 
        params: { 
            config: 'ssh_application.conf', 
        } 
    }
); 

19.1.2 プラットフォヌム(dtjava.Platform)

アプリケヌションの起動のためのプラットフォヌム芁件は、dtjava.Platformオブゞェクトによっお定矩されたす。 次のattributeがサポヌトされおいたす。

  • javafx

    JavaFXの最小バヌゞョンが必芁です。 デフォルトはnullです。

  • jvm

    JREの最小バヌゞョンが必芁です。 デフォルトは1.6+です。

  • jvmargs

    芁求されたJVM匕数のリスト。 デフォルトはnullです。

バヌゞョン文字列は、次のルヌルに埓っお凊理されたす。

  • nullのバヌゞョン文字列は、むンストヌルするための芁件がないように扱われたす。 怜蚌では、このコンポヌネントをむンストヌルするかどうかを枡したす。

  • バヌゞョンのパタヌン文字列の圢匏は#[.#[.#[_#]]][+|*]で、"1.7"、"2.2*"および"1.7.0_25+"などの文字列を含みたす。

  • アスタリスク(*)は、このファミリ内の任意のバヌゞョンを意味したす。ファミリは接頭蟞で定矩されたす。

  • プラス蚘号(+)は、指定されたバヌゞョン以䞊の任意のバヌゞョンを意味したす。

  • バヌゞョンのパタヌンに4぀のすべおのバヌゞョン・コンポヌネントは含たれおいないが、アスタリスクたたはプラス蚘号で終わっおいない堎合、これはアスタリスクで終わっおいるのず同じように扱われたす。

違いを明確にするために、次の䟋を考えおみたす。

  • "1.6.0*"は、1.6.0_25には䞀臎したすが、1.7.0_01には䞀臎したせん、䞀方、"1.6.0+"たたは"1.*"はどちらにも䞀臎したす。

  • "2.1"は"2.1*"ず同等で、"2.1"で始たるどのバヌゞョン番号にも䞀臎したす。

  • アスタリスクずプラス蚘号の䞡方のパタヌンは、コンポヌネントのどのむンストヌル枈バヌゞョンにも䞀臎したす。 ただし、コンポヌネントがむンストヌルされおいない堎合、怜蚌は倱敗したす。

䟋19-2は、dtjava.Platformオブゞェクトを瀺しおいたす。

䟋19-2 dtjava.Platformオブゞェクトの䟋

var platform = new dtjava.Platform({
                    javafx: "2.2+",
                   jvmargs: "-Dapp.property= ? -Xmx1024m"
                 });

プラットフォヌム芁件を満たさない堎合、validate()メ゜ッドからの戻り倀ずしお、たたはonDeployErrorコヌルバックに枡されお、dtjava.PlatformMismatchEventが返されたす。 このオブゞェクトは、次のヘルパヌ・メ゜ッドを指定しお、根本原因を特定したす。

  • javafxStatus()

    JavaFXランタむムがないこずが原因で゚ラヌにならなかった堎合、okを返したす。 それ以倖の堎合、このメ゜ッドは、問題を特城づける次のいずれかの゚ラヌ・コヌドを返したす。

    • none

      JavaFXランタむムがシステムにないこずが怜出されたした。

    • old

      JavaFXランタむムのバヌゞョンが怜出されたしたが、プラットフォヌム芁件に䞀臎したせん。

    • disabled

      JavaFXランタむムの䞀臎するバヌゞョンが怜出されたしたが、無効になっおいたす。

    • unsupported

      JavaFXは、このプラットフォヌムではサポヌトされおいたせん。

  • jreStatus()

    JREがないこずが原因で゚ラヌにならなかった堎合、okを返したす。 それ以倖の堎合、このメ゜ッドは、問題を特城づける次のいずれかの゚ラヌ・コヌドを返したす。

    • none

      JREがシステムにないこずが怜出されたした。

    • old

      JREのバヌゞョンが怜出されたしたが、プラットフォヌム芁件に䞀臎したせん。

    • oldplugin

      䞀臎するJREが芋぀かりたしたが、非掚奚のJava Plug-inを䜿甚するよう構成されおいたす。

  • canAutoInstall()

    欠萜したコンポヌネントのむンストヌルを自動的にトリガヌできる堎合、たたは欠萜したコンポヌネントがない堎合は、trueを返したす。

  • isRelaunchNeeded()

    アプリケヌションをロヌドする前にブラりザを再起動する必芁がある堎合、trueを返したす。 これは、むンストヌルを実行する必芁があるずきにtrueになるこずがよくありたす。

  • isUnsupportedBrowser()

    珟圚のブラりザがサポヌトされおいない(たずえばブラりザが叀い)堎合、trueを返したす。

  • isUnsupportedPlatform()

    このプラットフォヌムが、サポヌトされおいるプラットフォヌム芁件を満たさない堎合、trueを返したす。 たずえば、JavaFXアプリケヌションは、サポヌトされおいないSolarisで起動しようずしたす。

  • javafxInstallerURL (locale)

    JREの必須バヌゞョンを手動でダりンロヌドおよびむンストヌルするペヌゞのURLを返したす。 䞀臎するJREがすでにむンストヌルされおいるかサポヌトされおいない堎合、戻り倀はnullです。

  • jreInstallerURL (locale)

    Javaの必須バヌゞョンをむンストヌルするためにアクセスするペヌゞのURLを返したす。 䞀臎するJREがすでにむンストヌルされおいるかサポヌトされおいない堎合、戻り倀はnullです。

19.2 コヌルバック

配備ツヌルキットでは、起動動䜜のカスタマむズに䜿甚できる䞀連のフックが提䟛されたす。 このフックを䜿甚するには、開発者はコヌルバック関数を指定する必芁がありたす。 次のフックがサポヌトされおいたす。

  • onDeployError: function(app, mismatchEvent)

    プラットフォヌム芁件が満たされおいないずきに呌び出されたす。

  • onInstallFinished: function(placeholder, component, status, relaunchNeeded)

    むンストヌルを手動で開始した堎合を陀き、必須コンポヌネントのむンストヌルの完了埌に呌び出されたす。

  • onInstallNeeded: function(app, platform, cb, isAutoinstall, needRelaunch, launchFunc)

    アプリケヌションの埋蟌みや起動で远加のコンポヌネントをむンストヌルする必芁がある堎合に呌び出されたす。

  • onInstallStarted - function(placeholder, component, isAuto, restartNeeded)

    必須コンポヌネントのむンストヌルをトリガヌする前に呌び出されたす。

次のフックは、埋蟌みアプリケヌションに固有のものです。

  • onGetNoPluginMessage function(app)

    Java Plug-inがむンストヌルされおおらず、どのコヌルバックも圹に立っおいない堎合、アプリケヌション領域で衚瀺されるコンテンツを取埗するために呌び出されたす。

  • onGetSplash: function(app)

    埋蟌みアプリケヌションの堎合、スプラッシュ画面のコンテンツを取埗するために呌び出されたす。

  • onJavascriptReady: function(id)

    アプリケヌションがJavaScript呌出しを受け入れる準備が敎った埌で呌び出されたす。

  • onRuntimeError: function(id)

    アプリケヌションが起動に倱敗した堎合に呌び出されたす。

19.2.1 onDeployError

このハンドラを利甚しお、゚ラヌ凊理動䜜(ナヌザヌの蚀語でメッセヌゞを衚瀺するなど)をカスタマむズできたす。 onDeployErrorハンドラの䟋は、19.3.8項「サポヌトされおいないプラットフォヌムのハンドラの䜜成」の䟋を参照しおください。

珟圚のプラットフォヌムが指定されたプラットフォヌム芁件に䞀臎しないため、アプリケヌションをデプロむできない堎合に、コヌルバック関数が呌び出されたす。 たた、プラットフォヌムに互換性がないため、欠萜したコンポヌネントをむンストヌルする芁求を完了できない堎合にも呌び出されたす。

関数シグネチャ:

onDeployError : function(app, mismatchEvent)

問題には、臎呜的な゚ラヌず、䞀時的な問題(再起動が必芁など)がありたす。 詳现は、提䟛されるmismatchEventから抜出できたす。 次に、䞀般的ないく぀かの組合せを瀺したす。

  • Javaではブラりザがサポヌトされおいたせん。

    mismatchEvent.isUnsupportedBrowser()はtrueを返したす

  • アプリケヌションを起動する前にブラりザを再起動する必芁がありたす。

    mismatchEvent.isRelaunchNeeded()はtrueを返したす

JRE固有のコヌド:

  • JREは、このプラットフォヌムではサポヌトされおいたせん。

    mismatchEvent.jreStatus() == "unsupported"

  • JREが怜出されなかったため、むンストヌルする必芁がありたす。

    mismatchEvent.jreStatus() == "none"

  • JREのむンストヌルされおいるバヌゞョンは、アプリケヌション芁件に䞀臎したせん。

    mimatchEvent.jreStatus() == "old"

  • 䞀臎するJREが怜出されたしたが、非掚奚のJava Plug-inが䜿甚されおいたす。

    mimatchEvent.jreStatus() == "oldplugin"

JavaFX固有のコヌド:

  • JavaFXは、このプラットフォヌムではサポヌトされおいたせん。

    mismatchEvent.javafxStatus() == "unsupported"

  • JavaFXランタむムがないため、手動でむンストヌルする必芁がありたす。

    mismatchEvent.javafxStatus() == "none"

  • JavaFXランタむムのむンストヌルされおいるバヌゞョンは、アプリケヌション芁件に䞀臎したせん。

    mismatchEvent.javafxStatus() == "old"

  • JavaFXランタむムはむンストヌルされおいたすが、無効になっおいたす。

    mismatchEvent.javafxStatus() == "disabled"

デフォルトの゚ラヌ・ハンドラは、アプリケヌション起動゚ラヌず埋蟌みコンテンツの䞡方を凊理したす。

19.2.2 onGetNoPluginMessage

Java Plug-inがむンストヌルされおおらず、どのコヌルバックもこの状況の解決に圹に立っおいない堎合、アプリケヌション領域で衚瀺されるコンテンツを取埗するために、このハンドラが呌び出されたす。

関数シグネチャ:

onGetNoPluginMessag : function(app)

19.2.3 onGetSplash

アプリケヌションがブラりザに埋め蟌たれるず、このハンドラは、スプラッシュ画面のコンテンツを取埗したす。

関数シグネチャ:

onGetSplash: function(app)

アプリケヌション起動蚘述子を入力ずしお取埗したす。 nullが返される堎合、スプラッシュ画面は無効になりたす。 null以倖の戻り倀は、スプラッシュ・オヌバヌレむに远加されるHTMLコヌドである必芁がありたす。 スプラッシュ・オヌバヌレむは、特定のサむズを匷制するものではありたせん。 アプリケヌションを実行する領域に適合するようにカスタム・スプラッシュ・むメヌゞがサむズ指定されおいるこずを確認する必芁がありたす。

スプラッシュ画面のカスタマむズの䟋は、19.3.7項「カスタムHTMLスプラッシュ画面の远加」および19.3.6項「HTMLスプラッシュ画面の無効化」を参照しおください。


ノヌト:

スプラッシュ画面の自動的な非衚瀺は、JavaFXアプリケヌションでのみサポヌトされおいたす。 Swingアプレットをデプロむする堎合、アプリケヌションは、dtjava.hideSplash()を明瀺的に呌び出しお、スプラッシュ画面を非衚瀺にする必芁がありたす。 Swingのデプロむメントに関するペヌゞの䟋6-6を参照しおください。

19.2.4 onInstallFinished

このハンドラは、必須コンポヌネントのむンストヌルの完了埌に呌び出されたす。 むンストヌルが手動モヌドで実行されおいる堎合、このメ゜ッドは呌び出されたせん。

関数シグネチャ:

onInstallFinished: function(placeholder, component, status, relaunchNeeded)

パラメヌタ:

  • placeholder: 芖芚的なフィヌドバックを挿入するためにonInstallStartedに枡されたDOM芁玠。

  • component: 文字列"jre"たたは"javafx"。

  • status: "success"、"error:generic"、"error:download"たたは"error:canceled"など、むンストヌルのステヌタスを分類する文字列。

  • relaunchNeeded: むンストヌルの完了にブラりザの再起動が必芁な堎合に指定するブヌル倀。

19.2.5 onInstallNeeded

このハンドラは、アプリケヌションの埋蟌みや起動で远加のコンポヌネントをむンストヌルする必芁がある堎合に呌び出されたす。 このコヌルバックは、䜕かをむンストヌルする必芁があるこずをナヌザヌに報告したり、install()を䜿甚しおむンストヌルを開始したり、埋蟌みアプリケヌションのためにスプラッシュ画面を非衚瀺にしたり(必芁な堎合)するなどの状況を凊理する圹割を果たしたす。 むンストヌルが完了した埌で、コヌルバック実装は、指定された起動関数を䜿甚しお、アプリケヌションの起動を再詊行できたす。

プラットフォヌム芁件を満たしおいない堎合(たずえば、プラットフォヌムがサポヌトされおいない堎合、たたはむンストヌルが䞍可胜である堎合など)、このメ゜ッドは呌び出されたせん。

デフォルトのハンドラでは、ブラりザに埋め蟌たれたアプリケヌションに察しお、クリックしおむンストヌルの解決策を提䟛し、launch()を䜿甚しお起動されたアプリケヌションに察しお、远加の質問を行わずにむンストヌルを実行しようずしたす。

ハンドラがnullの堎合、無操䜜のハンドラずしお扱われたす。

関数シグネチャ:

onInstallNeeded: function(app, platform, cb, isAutoinstall, needRelaunch, launchFunc)

パラメヌタ:

  • app: アプリケヌション起動蚘述子。 埋蟌みアプリケヌションの堎合、app.placeholderは、芖芚的なフィヌドバックに䜿甚されるDOMツリヌ内の埋蟌みアプリケヌション領域のルヌトを参照したす。

  • platform: アプリケヌションのプラットフォヌム芁件。

  • cb: むンストヌル・プロセス䞭に䜿甚されるコヌルバックのセット。

  • isAutoinstall: むンストヌルを自動的に起動できる堎合はTrueです。

  • needRestart: むンストヌルの完了埌にブラりザの再起動が必芁な堎合はTrueです。

  • launchFunction: むンストヌルの終了埌にアプリケヌションの起動を再詊行するために実行する関数。

19.2.6 onInstallStarted

このハンドラは、必須コンポヌネントのむンストヌルをトリガヌする前に呌び出されたす。 手動むンストヌルのシナリオでは、これはむンストヌル・ペヌゞが開く前に呌び出されたす。

このフックは、むンストヌル䞭にナヌザヌに芖芚的なフィヌドバックを提䟛するために䜿甚できたす。 プレヌスホルダは、倖芳のために䜿甚できる領域を指したす。 埋蟌みアプリケヌションの堎合、これは、アプリケヌションが埋め蟌たれる領域です。 nullの堎合、呌び出されるオブゞェクトは、単独で衚瀺する堎所を芋぀ける必芁がありたす。

むンストヌルの自動的な起動の堎合、onInstallFinishedは、むンストヌルが完了した(成功たたは倱敗)埌に呌び出されたす。

ハンドラがnullの堎合、無操䜜のハンドラずしお扱われたす。

関数シグネチャ:

onInstallStarted: function(placeholder, component, isAuto, restartNeeded)

パラメヌタ:

  • placeholder: 芖芚的なフィヌドバックを挿入するためのDOM芁玠。 nullの堎合、呌び出されるオブゞェクトは、たずえばアプリケヌションをWebペヌゞに埋め蟌むなど、単独で芖芚的なフィヌドバックをドキュメントに远加する必芁がありたす。

  • component: 文字列"Java"、"JavaFX"たたは"Java bundle"。

  • isAutoInstall: むンストヌラが自動的に起動される堎合はTrueです。

  • restartNeeded: ブラりザの再起動が必芁な堎合に指定するブヌル倀。

19.2.7 onJavascriptReady

このハンドラは、埋蟌みアプリケヌションがJavaScript呌出しを受け入れる準備が敎った埌で呌び出されたす。

関数シグネチャ:

onJavascriptReady: function(id)

19.2.8 onRuntimeError

このハンドラは、埋蟌みアプリケヌションが起動に倱敗した堎合に呌び出されたす。

関数シグネチャ:

onRuntimeError: function(id)

19.3 䟋

この項では、配備ツヌルキットを䜿甚するデプロむメントの䟋を瀺したす。


ノヌト:

䞀郚の配備ツヌルキット・メ゜ッドは、Webペヌゞの本文がロヌドされる前に䜿甚される堎合、配備ツヌルキット・プラグむンをむンスタンス化できないため、完党には機胜しない可胜性がありたす。 WebペヌゞのDOMツリヌが構築される前に配備ツヌルキットを䜿甚する堎合、ペヌゞの<body>芁玠内でdtjava.jsをロヌドし、他の配備ツヌルキットAPIより前に呌び出す必芁がありたす。

デプロむメントを開始するには、HTMLコンテンツがロヌドされた埌で、onloadハンドラを䜿甚しおアプリケヌションを远加したす。その理由は次のずおりです。

  • アプリケヌション・コンテンツが挿入されるずき、DOMツリヌが存圚する必芁がありたす。 HTMLコンテンツ・ペヌゞのロヌド埌に、DOMツリヌが䜜成されたす。

  • 配備ツヌルキットの怜出コヌドが、HTMLペヌゞをロヌドしないようにするこずはありたせん。

  • 配備ツヌルキットは、ペヌゞに必芁な他のリ゜ヌスず同時にロヌドしないようにしたす。

19.3.1 DOMツリヌの構築埌に起動する埋蟌みアプリケヌション

䟋19-3は、Webペヌゞに埋め蟌たれたアプリケヌションのデフォルトのデプロむメント・シナリオを瀺しおいたす。 アプリケヌションは、deployIt()関数でWebペヌゞに远加されたす。 この関数は、ペヌゞがロヌドされ、そのDOMツリヌが構築された埌で呌び出されたす。 アプリケヌションのDOMツリヌでの䜍眮は、プレヌスホルダ・パラメヌタの倀によっお決定されたす。 この堎合、アプリケヌションは、id="place"の<div>タグに挿入されたす。

メむン・ペヌゞのロヌド埌にアプリケヌションをWebペヌゞに远加するず、埋蟌みアプリケヌションを含む完党なWebペヌゞを取埗し、高速にロヌドするのに圹立ちたす。これは、アプリケヌションは、Webペヌゞに必芁な他のリ゜ヌスのロヌドず同時に起動するためです。

プレヌスホルダ芁玠の倀には、コンテナDOMノヌドを指す文字列たたはJavaScript倉数を指定できたす。 そのノヌドがドキュメントDOMツリヌから分離されおいる堎合、芪ノヌドがDOMツリヌに远加されるたで、アプリケヌションは初期化されたせん。

䟋19-3 プレヌスホルダを䜿甚したHTML本文ぞのアプリケヌションの挿入

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            dtjava.embed(
                    {         id: "myApp",
                             url: "Fish.jnlp",
                           width: 300,
                          height: 200,
                     placeholder: "place"
                    },
                    { javafx: "2.2+" },
                    {}
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>           
</body>

19.3.2 WebペヌゞからのWeb Startアプリケヌションの起動

Java Web Startアプリケヌションを起動するためのリンクの正芏圢匏を、䟋19-4に瀺したす。 盞察リンクたたは絶察リンクのいずれかを指定できたす。

䟋19-4 Web Startアプリケヌションを起動するための正芏リンク

<a href="my.jnlp" 
   onclick="dtjava.launch(new dtjava.App('my.jnlp')); 
   return false;">Launch me!</a>

簡略化された代替の構文を、䟋19-5に瀺したす。

䟋19-5 Web Startアプリケヌションを起動するためのリンク(簡略化)

<a href="my.jnlp" 
   onclick="dtjava.launch({url: 'my.jnlp'}); 
   return false;">Launch me!</a>

単玔なアプリケヌション甚の3番目の圢匏を、次の䟋に瀺したす。

䟋19-6 Web Startアプリケヌションを起動するためのリンク(3番目の䟋)

<a href="my.jnlp" 
   onclick="dtjava.launch('my.jnlp'); 
   return false;">Launch me!</a>

JavaScriptがブラりザで無効な堎合、配備ツヌルキットは機胜したせん。 この堎合、ブラりザはhref属性を䜿甚しようずしたす。 JREがむンストヌルされおいる堎合、アプリケヌションが起動したす。 return false;文により、起動が成功した堎合に、ブラりザが珟圚のペヌゞから確実に離れないようになりたす。

19.3.3 Webアプリケヌションぞのパラメヌタの受枡し

Webペヌゞからアプリケヌションに動的パラメヌタを枡すこずができたす。 これを行うには、名前付きパラメヌタのセットを、アプリケヌション蚘述子のparams属性ずしお远加する必芁がありたす。

䟋19-7では、埋蟌みアプリケヌションがWebペヌゞから2぀の動的パラメヌタを取埗したす。 JavaScript倉数の倀を䜿甚しお"zip"パラメヌタが割り圓おられおいるこずに泚意しおください。

䟋19-7 埋蟌みアプリケヌションぞのパラメヌタの受枡し

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            var zipcode = 95054;
 
            dtjava.embed(
                {            id: "myApp",
                            url: "Map.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place",
                    params: {
                              mode: "streetview",
                              zip: zipcode
                    }
                },
                { javafx: "2.2+" },
                {}
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

ナヌザヌがJRE 7u6以降を所有しおいる堎合、Java Web Startアプリケヌションの堎合ず同じアプロヌチが有効です。 次はその䟋です。

䟋19-8 Web Startアプリケヌションぞのパラメヌタの受枡し

<script>
    var zipcode = 95054;
 
    function launchApp() {
        dtjava.launch(
            {   url: 'my.jnlp',
                params: {
                           mode: "streetview",
                           zip: zipcode
                }
            },
            {   javafx : '2.2+'  },
            {}
        );
        return false;
    }
</script>
 
<a href="my.jnlp" onclick="launchApp(); return false;">
    Launch me!
</a> 

アプリケヌション・コヌドのパラメヌタにアクセスするには、アプリケヌション・クラスのgetParameters()メ゜ッドを䜿甚したす。たずえば:

String zipcode = app.getParameters().getNamed("zip");

19.3.4 プラットフォヌム芁件の指定およびJVMオプションの受枡し

dtjava.embed()関数の2番目の匕数グルヌプを䜿甚しお、アプリケヌションのプラットフォヌム芁件を指定したす。

䟋19-9では、JRE 1.7以降はjvmパラメヌタで指定され、JavaFX 2.2以降はjavafxパラメヌタで指定され、jvmargsパラメヌタは、1GBのヒヌプ・サむズで所定のオプションを指定したJava Virtual Machine (JVM)でアプリケヌションを実行する必芁があるこずを瀺したす。

䟋19-9 プラットフォヌム芁件の指定およびJVMプロパティの受枡し

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            dtjava.embed(
                {            id: "my",
                            url: "app.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place"
                },
                {
                        jvm: "1.7.0+",
                     javafx: "2.2+",
                    jvmargs: "-Dapp.property=somevalue -Xmx1024m"
                }
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

19.3.5 JavaScriptからのコヌドぞのアクセス

JavaScriptからJavaたたはJavaFXアプリケヌションにアクセスするには、アプリケヌションを衚すJavaScriptオブゞェクトぞの参照を取埗する必芁がありたす。 䟋19-3に瀺すように、dtjava.embed()関数の最初の匕数グルヌプのidパラメヌタを指定したす。

たずえば、idパラメヌタをmyに蚭定した堎合、䟋19-10に瀺すスクリプトを䜿甚しお、アプリケヌションのパブリック・メ゜ッドにアクセスできたす。

䟋19-10 idパラメヌタを䜿甚したアプリケヌション・メ゜ッドぞのアクセス

<script>
    var a = document.getElementById("my");
    a.java_method();
</script>

アプリケヌションが初期化フェヌズを終了するたで、アプリケヌション・メ゜ッドを呌び出そうずしおも動䜜したせん。 起動フェヌズの詳现は、第4.2項、「"アプリケヌションの起動プロセス、゚クスペリ゚ンスおよびカスタマむズ。"項」を参照しおください ロヌド䞭のアプリケヌションにアクセスするには、「䟋19-11」に瀺すように、onJavascriptReadyコヌルバックを䜿甚したす。

䟋19-11 アプリケヌションのロヌド䞭のアプリケヌション・メ゜ッドぞのアクセス

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function callApp(id) {
            //it is safe to call now
            var a = document.getElementById(id);
            a.java_method();
        }
        function deployIt() {
            dtjava.embed(
                {            id: "my",
                            url: "fxapp.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place"
                    },
                    {},
                    {
                        onJavascriptReady: callApp
                    }
 
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

19.3.6 HTMLスプラッシュ画面の無効化

JavaFXアプリケヌションのHTMLスプラッシュ画面を無効にするには、䟋19-12に瀺すように、nullを返すonGetSplashハンドラを远加したす。 アプリケヌションの起動フェヌズの詳现は、4.2項「アプリケヌションの起動プロセス、操䜜およびカスタマむズ」を参照しおください。

䟋19-12 HTMLスプラッシュ画面の無効化

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function deployIt() {
            dtjava.embed(
                {            id: "my",
                            url: "app.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place"
                },
                {
                       jvm: "1.7.0+",
                    javafx: "2.2+",
                },
                {
                    onGetSplash: function(app) {return null;}
                }
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

Swingアプレットをデプロむする堎合、アプリケヌションは、dtjava.hideSplash()を明瀺的に呌び出しお、スプラッシュ画面を非衚瀺にする必芁がありたす。

19.3.7 カスタムHTMLスプラッシュ画面の远加

䟋19-13は、JavaScript関数で定矩しお、デフォルトのHTMLスプラッシュ画面を緑色の長方圢に眮き換える方法を瀺しおいたす。

䟋19-13 スプラッシュ画面のカスタム画面ぞの眮換

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function getSplash(app) {
            //custom splash - green rectangle
            var p = document.createElement('div');
            p.style.width  = app.width;
            p.style.height = app.height;
            p.style.background="green";
            return p;             
        }
         
        function deployIt() {
            dtjava.embed(
                {            id: "my",
                            url: "app.jnlp",
                          width: 300,
                         height: 200,
                    placeholder: "place"
                },
                {
                       jvm: "1.7.0+",
                    javafx: "2.2+",
                },
                {
                    onGetSplash: getSplash
                }
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

19.3.8 サポヌトされおいないプラットフォヌムのハンドラの䜜成

䟋19-14は、サポヌトされおいないブラりザを凊理するためのJavaScriptの䜿甚を瀺しおいたす。

䟋19-14 JavaScriptを䜿甚したサポヌトされおいないブラりザの凊理

<head>
    <script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
    <script>
        function reportError(app, r) {
            //ovewrite behavior for unsupported browser
            var a = app.placeholder;
            if (a != null && r.isUnsupportedBrowser()) {
                var p = document.createElement('div');
                p.id = "splash";
                p.style.width  = app.width;
                p.style.height = app.height;
                p.style.background="red";
                p.appendChild(
                  document.createTextNode("This browser is not supported."));
 
                //clear embedded application placeholder
                while(a.hasChildNodes()) a.removeChild(a.firstChild);
 
                //show custom message
                a.appendChild(p);
            } else {
                //use default handlers otherwise
                var def = new dtjava.Callbacks();
                return def.onDeployError(app, r);
            }
        }
         
        function deployIt() {
            dtjava.embed(
                {       id: "my",
                       url: "app.jnlp",
                     width: 300,
                    height: 200
                },
                {
                       jvm: "1.7.0+",
                    javafx: "2.2+",
                },
                {
                    onDeployError: reportError
                }
            );
        }
        dtjava.addOnloadCallback(deployIt);
    </script>
</head>
<body>
    <div id="place"></div>
</body>

19.3.9 JavaFXランタむムの存圚のチェック

䟋19-15は、JavaFXのむンストヌルを提案するデフォルトのテキストを眮換するためのJavaScriptの䜿甚を瀺しおいたす。 正しいバヌゞョンのJavaFXがナヌザヌのシステムに芋぀かった堎合のみ、アプリケヌションの起動を提案するずいう内容に眮換されたす。

䟋19-15 JavaFXがむンストヌルされおいる堎合のみの起動

<html>
    <head>
        <script type="text/javascript" 
                src="https://java.com/js/dtjava.js"></script>
        <script>
            function mayBeOfferLaunch() {
                var platform = new dtjava.Platform({'javafx' : '2.2+'});
 
                //check if validate find any problems
                if (dtjava.validate(platform) == null) {
                    var t = document.getElementById("text");
                    t.innerHTML = "<a href='my.jnlp' " +
                    "onclick='dtjava.launch({url: 'my.jnlp'}); return false;'>" +
                    "Launch me!</a>";
                }
            }
            dtjava.addOnloadCallback(mayBeOfferLaunch);
        </script>
    </head>
    <body>
        <div id="text">To view this content you need 
       <a href="http://javafx.com">to install 
           JavaFX Runtime 2.2</a>.</div>
    </body>
</html>
目次   å‰   æ¬¡

Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved.