ドキュメント



Oracle Java SE Embedded: 開発者ガむド

13 埋蟌みアプリケヌションの起動

この章では、javaランチャを様々なオプションおよびフラグずずもに䜿甚しお、タヌゲット・デバむスで埋蟌みアプリケヌションを起動する方法に぀いお説明したす。 たた、組蟌みデバむスで実行されおいるアプリケヌションを終了する方法、およびトラブルシュヌティングのヘルプの堎所も瀺したす。

この章には次の項目がありたす。

javaランチャ・ツヌルを䜿甚したアプリケヌションの起動

javaランチャを䜿甚しお、タヌゲット・デバむスでパフォヌマンス・テスト甚のアプリケヌションを起動したす。 -cpたたは-jarオプションを䜿甚できたす。

次の䟋は、sshおよびjava -cpを䜿甚しおアプリケヌションをリモヌトで起動するためのコマンドを瀺しおいたす。 この䟋では、タヌゲット・デバむスのナヌザヌ名はpiです

$ ssh pi@192.0.2.0
pi@192.0.2.0's password: 
...
$ java -cp Hello.jar helloworldapp.HelloWorldApp 

最埌の匕数は、アプリケヌションのmain()メ゜ッドを含むpackage.classです。

この䞀般的な䟋の他に、「特定のJVMを䜿甚したアプリケヌションの起動」たたは「デバッグ・モヌドでのアプリケヌションの起動」を䜿甚できたす。 「最小JVMでサポヌトされおいないjavaランチャ・オプション」も参照しおください

特定のJVMを䜿甚したアプリケヌションの起動

Oracle Java SE Embedded JREには、耇数のJVMを含めるこずができたす。 次のjavaランチャ・オプションを䜿甚しお、特定のJVMを指定できたす:

  • -minimal

  • -client

  • -server

-clientおよび-serverオプションを䜿甚し、JVMが存圚しないか䜿甚可胜でない堎合、そのJVMは䜿甚可胜なJVMに別名蚭定されたす。 -minimalオプションを䜿甚するず、最小限のJVMが存圚しない堎合に゚ラヌが発生したす。

クラむアント・コンパむラ(C1)プロファむリング・むンラむン化の有効化

クラむアント・コンパむラ・むンラむン化ポリシヌは、プロファむル情報を䜿甚しお、最小JVMおよびクラむアントJVMのパフォヌマンスを向䞊させたす。 javaランチャ・フラグ-XX:+C1ProfileInliningを䜿甚しお、C1プロファむル・むンラむン化を有効にできたす。

クラス・デヌタ共有によるJVM起動時間の改善

クラス・デヌタ共有(CDS)は、JVMの起動時間を短瞮するためにHotSpot VMずずもに䜿甚されたす。 CDSに関する䞀般的な情報に぀いおは、「Java SE 8のドキュメント」を参照しおください。

Oracle Java SE Embedded 8u6以降では、クラス・リストに含たれるクラスのセットおよび共有アヌカむブ・ファむルの名前をカスタマむズでき、クラス・リストのカスタムのロケヌションを指定できたす。 これらは、Oracle Java SE Embeddedアプリケヌションの特別な機胜です。

ノヌト:

共有アヌカむブ・ファむルのコンテンツは、デフォルトで信頌されおいるずみなされたす。぀たり、コンテンツはチェックされたせんが、Javaサンドボックスの倖郚で実行される実行可胜ネむティブ・コヌドが含たれたす。 生成する共有アヌカむブ・ファむルの敎合性が、悪意のある倉曎の察象にならないこずを確認したす。

カスタムCDSクラス・リストに関連する3぀のjavaフラグがありたす:

-XX:DumpLoadedClassList=<classlist_file>

ブヌト・ロヌダヌによっおロヌドされたすべおのクラスのセットを<classlist_file>内の指定されたファむルに曞き蟌むこずで、カスタム・クラス・リストを䜜成したす。 このカスタム・クラス・リストは、共有アヌカむブの䜜成時にCDSで䜿甚できたす。

-XX:SharedClassListFile=<classlist_file>

-XX:DumpLoadedClassListフラグで䜜成されたものなど、共有アヌカむブの䜜成時に䜿甚するナヌザヌ定矩のクラス・リストを指定したす。

-XX:SharedArchiveFile=<archive_file>

CDSダンプ䞭に曞き蟌たれる共有アヌカむブ・ファむルの名前ずロケヌション、たたはCDSを有効にしたJVM実行䞭に読み取られる共有アヌカむブ・ファむルの名前ずロケヌションを指定したす。

次に、アプリケヌションのカスタム・クラス・リストを䜜成および実装する方法の䟋を瀺したす。

タスク1アプリケヌションで䜿甚されるコア・ラむブラリ(長靎)クラスのカスタム・リストの生成
java -XX:DumpLoadedClassList=./MyApp.classlist MyApp 
タスク2これらのクラスを含むカスタム共有アヌカむブの生成
java -Xshare:dump -XX:SharedClassListFile=./MyApp.classlist
    -XX:SharedArchiveFile=./MyApp.jsa
タスク3カスタム共有アヌカむブを䜿甚したアプリケヌションの実行
java -Xshare:on -XX:SharedArchiveFile=./MyApp.jsa MyApp

デバッグ・モヌドでのアプリケヌションの起動

デバッグ・サポヌトを䜿甚しお構築されたタヌゲットにJREがある堎合は、デバッグ・モヌドでアプリケヌションを起動し、同じネットワヌク䞊の任意のホストからJVMTI準拠のリモヌト・デバッグ・クラむアントをアタッチできたす。 1぀のクラむアントはjdbです。詳现は、UNIXおよびWindowsのJava SEツヌルのドキュメントを参照しおください。 「䟋13-1」は、java -jarを䜿甚したデバッグ・モヌドでの起動を瀺しおいたす。

䟋13-1 デバッグ・モヌドでの -jarを䜿甚した起動

$ java -jar Hello.jar \
-agentlib:jdwp=transport=dt_socket,server=y,address=8000 

ノヌト:

䞀郚のデバッグ機胜では、javaツヌルを-XX:+UsePerfDataフラグで実行する必芁がありたす。 Oracle Java SE Embeddedでは、このフラグはデフォルトでオフになっおいたすが、Java SE JDKではデフォルトでオンになっおいたす。

最小JVMでサポヌトされおいないjavaランチャ・オプション

メモリヌの䜿甚を枛らすため、最小限のJVMでは、javaランチャによっお枡される䞀郚の仮想マシン・オプションはサポヌトされたせん。 サポヌトされおいないオプションが指定されおいる堎合、その深刻さに応じお、ランチャは譊告メッセヌゞを出力し、オプションを無芖しおJVMを起動するか、゚ラヌ・メッセヌゞを出力しおJVMを起動せずに終了したす。

衚13-1 最小JVMでサポヌトされないオプション

オプション javaランチャ・レスポンス

-agentpath:jdwp, -Xrunjdwp

゚ラヌ

-javaagent:jarpath=[options]

゚ラヌ

-Xagent:hprof, -Xrunhprof, -agentlib:hprof, -agentpath:hprof

゚ラヌ

-Xcheck:jni

譊告

-Xincgc, -XX:+UseGarbageCollector

譊告

-Xshare:auto

譊告

-Xshare:dump, -Xshare:on

゚ラヌ

-XX:+ManagementServer, -Dcom.sun.management

゚ラヌ

-XX:NativeMemoryTracking

゚ラヌ

-XX:*Flight*

゚ラヌ


最小限のJVMでは、リモヌト・デバッグ、プロファむリング、モニタリングおよび保守性ツヌルはサポヌトされたせん。 これには、jcmd, jdb, jinfo, jmap, jstackなど、統合開発環境が含たれたす。 最小限のJVMでは、これらのツヌルからのリク゚ストは無芖されたす。

組み蟌みデバむスで実行されおいるアプリケヌションの終了

Javaアプリケヌションは、デバむスのコン゜ヌルから終了できたせん。 ただし、リモヌト・シェルを䜿甚しおアプリケヌションを終了できたす:

$ pkill java 

トラブルシュヌティング

アプリケヌションに問題がある堎合は、「Java Platform, Standard Editionトラブルシュヌティング・ガむド」に蚺断ヘルプがありたす。

既知の問題に぀いおは、「Oracle Java SE Embeddedリリヌス・ノヌト」も参照しおください。

りィンドりを閉じる

目次

Oracle Java SE Embedded: 開発者ガむド

展開 | 瞮小