#author("2021-12-14T01:56:58+00:00","","")
#author("2021-12-14T02:36:08+00:00","","")
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
Eclipseはプラグインの起動、停止や動的追加などに、[[OSGi(Open Services Gateway Initiative):http://www.osgi.org/]] というフレームワークを用いています。

あんまりメリットを理解していないのですが、このOSGiのコマンドラインを起動する方法があったので、メモっておきます。

***コマンドラインの起動 [#c22602e2]
Eclipse内でEclipseを起動するときに、プログラム引数に
 -console
を付けて起動します。するとコンソールに
 osgi>
というプロンプトが上がったはずです。

#ref(run.png)

***プラグインのリスト、起動状態を表示する [#q763578d]
 osgi> ss
と入力します((プロンプトに対する入力は緑字になります))。結果は以下の通り(抜粋)。
 osgi> ss
 
 Framework is launched.
 
 id	State       Bundle
 0	ACTIVE      system.bundle_3.1.2
 1	ACTIVE      org.eclipse.core.runtime_3.1.2
 	            Fragments=34, 52
 2	ACTIVE      org.eclipse.update.configurator_3.1.0
 	            Fragments=80
 23	ACTIVE      org.eclipse.core.expressions_3.1.0
 81	RESOLVED    org.eclipse.update.core_3.1.2
 	            Fragments=82, 83
 82	RESOLVED    org.eclipse.update.core.nl1_3.1.1
 	            Master=81
 83	RESOLVED    org.eclipse.update.core.win32_3.1.0
 	            Master=81
 84	RESOLVED    org.eclipse.update.ui_3.1.1
 	            Fragments=85
 85	RESOLVED    org.eclipse.update.ui.nl1_3.1.1
 	            Master=84
 86	RESOLVED    org.junit_3.8.1

ACTIVEやRESOLVEDなど、プラグインのリストとそのステータスが表示されます。

***あるプラグインを起動する。 [#h156d71d]
上の例で例えばorg.junit_3.8.1を起動したい場合は
 osgi> start 86
とします。もう一度リスト表示してみると
 86	ACTIVE      org.junit_3.8.1
となってACTIVEになりました。停止するには
 osgi> stop 86
ですね。

***その他 [#nb538afb]
全部調べてませんが、とりあえず以下のコマンドがあるみたい。

 ---Eclipse Runtime commands.---
 	diag - Displays unsatisfied constraints for the specified bundle(s).
 	active - Displays a list of all bundles currently in the ACTIVE state.
 	getprop { name } - Displays the system properties with the given name, or all of them.
 Valid commands:
 ---Controlling the OSGi framework---
 	launch - start the OSGi Framework
 	shutdown - shutdown the OSGi Framework
 	close - shutdown and exit
 	exit - exit immediately (System.exit)
 	gc - perform a garbage collection
 	init - uninstall all bundles
 	setprop <key>=<value> - set the OSGi property
 ---Controlling Bundles---
 	install - install and optionally start bundle from the given URL
 	uninstall - uninstall the specified bundle(s)
 	start - start the specified bundle(s)
 	stop - stop the specified bundle(s)
 	refresh - refresh the packages of the specified bundles
 	update - update the specified bundle(s)
 ---Displaying Status---
 	status - display installed bundles and registered services
 	ss - display installed bundles (short status)
 	services {filter} - display registered service details
 	packages {<pkgname>|<id>|<location>} - display imported/exported package details
 	bundles - display details for all installed bundles
 	bundle (<id>|<location>) - display details for the specified bundle(s)
 	headers (<id>|<location>) - print bundle headers
 	log (<id>|<location>) - display log entries
 ---Extras---
 	exec <command> - execute a command in a separate process and wait
 	fork <command> - execute a command in a separate process
 ---Controlling Start Level---
 	sl {(<id>|<location>)} - display the start level for the specified bundle, 
  or for the framework if no bundle specified
 	setfwsl <start level> - set the framework start level
 	setbsl <start level> (<id>|<location>) - set the start level for the bundle(s)
 	setibsl <start level> - set the initial bundle start level
 ------Controlling the Profiling------
 	profilelog - Display & flush the profile log messages
 
 ---Controlling the Console---
 	more - More prompt for console output


***config.iniについて [#c8cd7cb7]
[[RCP Tutorial: Part 1:http://www.eclipse.org/japanwg/20050425/rcp_tutorial_ja1.html]]にあります通り、OSGi Frameworkはconfig.iniでコンフィギュレーションするみたいです。しらなかった。。

----
この記事は
#vote(おもしろかった[5],そうでもない[0])
#vote(おもしろかった[6],そうでもない[0])

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS