(57)【特許請求の範囲】
【請求項１】
プログラムの実行環境についての登録情報を記憶する実行環境データベースに基づきプログラムの実行を制御するオペレーティングシステムにおけるプログラム実行環境修復方式であって、
プログラムの起動が指示されたときに最初に実行される当該プログラムのスタートアップ部に、
当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、
前記要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、
前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、
前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスについての登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、
をコンピュータに実行させるための命令を記述し、
前記プログラムを起動することにより前記実行環境データベースにおける当該プログラムの実行環境についての登録情報を修復するプログラム実行環境修復方式。
【請求項２】
少なくともプログラムの実行ファイルの格納位置情報とそのプログラムに関連づけられたデータファイルを特定するための情報とそのプログラムの実行に必要なライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスの情報とについての登録情報を記憶する実行環境データベースに基づき、ユーザがデータファイルの処理を指示したときにそのデータファイルに関連づけられたプログラムを起動するオペレーティングシステムにおけるプログラムの実行環境修復方式であって、
処理が指示されたデータファイルに関連づけられたプログラムが起動されたときに最初に実行される当該プログラムのスタートアップ部に、
当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、
前記要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、
前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、
前記実行環境データベースに記憶された前記ライブラリプログラムの格納ディレクトリのパスの登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、
をコンピュータに実行させるための命令を記述し、
前記プログラムを起動することにより前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスの情報についての登録情報を修復するプログラム実行環境修復方式。
【請求項３】
各プログラムの実行環境情報を登録した実行環境データベースに基づき各プログラムの実行を制御するオペレーティングシステムの管理下で実行することができるプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記プログラムの起動が指示されたときに最初に実行される当該プログラムのスタートアップ部が、
当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、
要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、
前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、
前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスについての登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、
をコンピュータに実行させるための命令を含むことを特徴とする記録媒体。
【請求項４】
少なくともプログラムの実行ファイルの格納位置情報とそのプログラムに関連づけられたデータファイルを特定するための情報とそのプログラムの実行に必要なライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスの情報とについての登録情報を記憶する実行環境データベースに基づき、ユーザがデータファイルの処理を指示したときにそのデータファイルに関連づけられたプログラムを起動するオペレーティングシステムの管理下で実行することができるプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
処理が指示されたデータファイルに関連づけられたプログラムが起動されたときに最初に実行される当該プログラムのスタートアップ部が、
当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、
前記要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、
前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、
前記実行環境データベースに記憶された前記ライブラリプログラムの格納ディレクトリのパスの登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、
をコンピュータに実行させるための命令を含むことを特徴とする記録媒体。
【請求項５】
プログラムの実行環境についての登録情報を記憶する実行環境データベースに基づきプログラムの実行を制御するオペレーティングシステムにおけるプログラム実行環境修復方法であって、
プログラムの起動時に当該プログラムのスタートアップ部を実行することにより、
当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理ステップと、
前記要求処理ステップの要求に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理ステップと、
前記登録情報取得処理ステップで取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理ステップと、
前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスについての登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理ステップと、
を実行することを特徴とするプログラム実行環境修復方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムの実行環境についての登録情報を記憶する実行環境データベースに基づきプログラムの実行を制御するオペレーティングシステムにおいて、プログラムの実際の実行環境が実行環境データベースに登録された登録情報と相違することになったときの実行環境データベースの修復方式に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ等のコンピュータシステムのＯＳ（オペレーティングシステム）は、アプリケーション等のプログラムの動作に必要な実行環境についての情報が登録された実行環境データベースを有している。この実行環境データベースには、例えば、アプリケーションのファイル名、アプリケーションがインストールされたディレクトリ名、アプリケーションが使用するデータファイルの拡張子、アプリケーションと拡張子の割当てなど、様々な情報が設定される。例えば、この種の実行環境データベースとしては、米国マイクロソフト社のＷＩＮＤＯＷＳ９５（商標）というＯＳで用いられるレジストリがよく知られている。
【０００３】
実行環境データベースの登録情報は、アプリケーションの実行に関する様々な局面で用いられる。例えば、ウインドウベースのＯＳにおいて、ユーザが、データファイルを表すアイコンをマウス等で選択した場合、そのデータファイルに関連づけられたアプリケーションを自動的に実行し、そのアプリケーション上でそのデータファイルをオープンする機能がよく知られている。この機能を実現するに当たり、ＯＳは、選択されたデータファイルの拡張子から、実行環境データベースを参照してそのデータファイルに関連づけられたアプリケーションのファイル名やパスを取得し、取得した情報に基づきそのアプリケーションを実行する。
【０００４】
また、アプリケーションを実行するには、そのアプリケーション自体の実行ファイルの他に、ライブラリプログラムのファイルをロードする必要がある場合がある。例えば、前掲のＷＩＮＤＯＷＳ９５（商標）におけるＤＬＬ（ダイナミック・リンク・ライブラリ）がその一例である。アプリケーションの実行が指示された場合、ＯＳは、実行環境データベースを参照してそのアプリケーションの実行に必要なライブラリプログラムのファイル（ＤＬＬ等）の名称やディレクトリを調べ、ファイルシステムからそれら各ライブラリプログラムのファイルをロードする。
【０００５】
実行環境データベースへの実行環境情報の登録は、アプリケーションのインストール時に行われるのが一般的である。近年、アプリケーションの大規模化・複雑化に伴い、アプリケーションのインストールを人手で行うことは困難となっているため、アプリケーションのパッケージには、インストーラと呼ばれるインストール作業用のプログラムが添付されるのが一般的である。これに伴い、アプリケーションの実行環境情報の実行環境データベースへの登録も、インストーラにより行われることが一般的である。
【０００６】
いったんインストールしたアプリケーションについてインストール先のディレクトリ名を変更したい、アプリケーションを別のディレクトリに移動したい、などの要望は常に存在する。このような場合、単純にインストール先のディレクトリ名を変更したり、アプリケーションを構成するファイル（群）を別ディレクトリに移動したりしたのでは、アプリケーションは正常には動作しない。これは、実行環境データベースにおいて、アプリケーションのディレクトリの変更に応じた登録情報の変更がなされていないためである。例えば、ユーザがデータファイルのアイコンを選択したとしても、データファイルに関連づけられたアプリケーションが実行環境データベースに登録されたディレクトリに存在しないため、そのアプリケーションは起動されない。
【０００７】
従来は、このような問題を防ぐためには、アプリケーションに添付されたアンインストーラというプログラムを実行してそのアプリケーションに関するファイルの削除及び実行環境情報の登録の抹消を行い、この後、インストーラを用いてアプリケーションを所望のディレクトリに再インストールするという手順を踏むのが一般的であった。この手順により、アプリケーションの実行環境情報が実行環境データベースに正しく設定し直されることになるので、アプリケーションは正常に動作することができる。
【０００８】
また、アプリケーションのライブラリプログラムのファイルが実行環境データベースに登録されたディレクトリにない場合、そのアプリケーションは一般に実行できなかった。
【０００９】
従来は、このような場合もアンインストール及び再インストールを行うことにより、ライブラリプログラムを含むアプリケーションに必要なファイル全部をインストールし直すことにより対応するのが一般的であった。
【００１０】
【発明が解決しようとする課題】
しかしながら、アンインストール・再インストールという作業は非常に時間が掛かる作業である。このため、アンインストール・再インストールによらずアプリケーションの実行環境を整え、アプリケーションを移動や所属ディレクトリ名の変更などの処理を簡便かつ正しく実現するための機構が要望されていた。
【００１１】
アプリケーションの実行環境の設定に関しては、特開平６−６７８５５号公報に開示の技術が知られている。この技術では、アプリケーションプログラムとそのアプリケーションの実行環境を自動設定するための環境設定プログラムを内蔵した増設装置をデータ処理システムの増設アダプタに接続すると、そのシステムが増設装置内の環境設定プログラムを実行してそのアプリケーションに適した実行環境を設定する。しかしながら、この文献には、いったんインストールしたアプリケーションを移動させたりした場合などの対応処理については言及がない。
【００１２】
また、この他に特開平８−９５７５６号公報には、コンピュータにインストールされたソフトウエアの登録及び追跡のための技術が開示されている。この従来技術では、通常のソフトウエアに追跡用の階層化されたデータを添付し、ＯＳの割込ハンドラを使用して各ソフトウエアを常時追跡する。しかしながら、この手法は、ＯＳにかかる負担が極めて大きいという問題がある。
【００１３】
本発明は、上記問題を解決するためになされたものであり、いったんインストールしたプログラムの移動や所属ディレクトリ名の変更など、プログラムの実行環境の変更を行ったときに、実行環境データベース上の登録情報をその変更に合わせて簡便に修復するための方式を提供することを目的とする。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明は、プログラムの実行環境についての登録情報を記憶する実行環境データベースに基づきプログラムの実行を制御するオペレーティングシステムにおけるプログラム実行環境修復方式であって、プログラムの起動が指示されたときに最初に実行される当該プログラムのスタートアップ部に、当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、前記要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスについての登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、をコンピュータに実行させるための命令を記述し、前記プログラムを起動することにより前記実行環境データベースにおける当該プログラムの実行環境についての登録情報を修復することを特徴とする。
【００１５】
この方式では、プログラムを起動すると、そのプログラムのスタートアップ部が実行され、これによりそのプログラムのその時点での実際の実行環境の情報と実行環境データベースに登録された実行環境の登録情報とが比較される。そして、両者が一致している場合にはそのままそのプログラム本体部が実行され、両者が一致していない場合には実行環境データベースを実際の実行環境に合わせて更新した後でプログラム本体部が実行される。したがって、この方式によれば、ライブラリプログラムのファイルの移動などによりプログラムの実行環境が実行環境データベースに登録された登録情報と相違することになった場合には、そのプログラムを起動することにより、実行環境データベースにおけるそのプログラムの実行環境についての登録情報を正しく修復することができ、次にプログラムの移動等が行われるまでの間もそのプログラムを正しく実行することができる。
【００１６】
また、本発明は、少なくともプログラムの実行ファイルの格納位置情報とそのプログラムに関連づけられたデータファイルを特定するための情報とそのプログラムの実行に必要なライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスの情報とについての登録情報を記憶する実行環境データベースに基づき、ユーザがデータファイルの処理を指示したときにそのデータファイルに関連づけられたプログラムを起動するオペレーティングシステムにおけるプログラムの実行環境修復方式であって、処理が指示されたデータファイルに関連づけられたプログラムが起動されたときに最初に実行される当該プログラムのスタートアップ部に、当該プログラムの実行に必要なライブラリプログラムを前記オペレーティングシステムに要求する要求処理と、前記要求処理に対して前記オペレーティングシステムから前記ライブラリプログラムが発見できなかった旨の回答を受け取った場合に、前記実行環境データベースから、当該プログラムの実行に必要なライブラリプログラムのファイル名の登録情報を取得する登録情報取得処理と、前記登録情報取得処理で取得された前記ファイル名を持つファイルを前記オペレーティングシステムのファイルシステムから探索し、その探索の結果見つかったファイルの格納ディレクトリのパスを前記ライブラリプログラムの格納ディレクトリのパスの実際の情報として取得する起動時情報取得処理と、前記実行環境データベースに記憶された前記ライブラリプログラムの格納ディレクトリのパスの登録情報を前記起動時情報取得処理で取得されたライブラリプログラムの格納ディレクトリのパスの実際の情報に一致するよう更新する更新処理と、をコンピュータに実行させるための命令を記述し、前記プログラムを起動することにより前記実行環境データベースに記憶された当該プログラムの実行に必要なライブラリプログラムの格納ディレクトリのパスの情報についての登録情報を修復することを特徴とする。
【００１７】
この方式では、プログラムを起動すると、そのプログラムのスタートアップ部が実行され、これによりそのプログラムの実行に必要なライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスのその時点での実際の情報と実行環境データベースに登録されたそのライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスの登録情報とが比較される。そして、両者が一致している場合にはそのままそのプログラム本体部が実行され、両者が一致していない場合には実行環境データベースを実際の情報に合わせて更新した後でプログラム本体部が実行される。したがって、この方式によれば、プログラムの実行に必要なライブラリプログラムのファイル名及び該ライブラリプログラムの格納ディレクトリのパスが実行環境データベースに登録された登録情報と相違することになった場合には、そのプログラムを起動することにより、実行環境データベースにおけるその登録情報を正しく修復することができる。
【００１８】
【発明の実施の形態】
以下、本発明の実施の形態（以下実施形態という）について、図面に基づいて説明する。
【００１９】
図１は、本発明に係るアプリケーションプログラム（以下では単に「アプリケーション」と呼ぶ）１０の構成を説明するための図である。アプリケーション１０は、スタートアップ部１２と本体部１４とから構成される。スタートアップ部１２は、アプリケーション１０が起動されたときにまず最初に実行される部分であり、本発明に係る実行環境修復機能を記述した部分である。本体部１４は、アプリケーション１０の実質的な機能を記述した部分である。例えば、アプリケーション１０が表計算プログラムならば、本体部１４には、アプリケーション１０が表計算プログラムとして提供すべきすべての機能が記述されている。従来のアプリケーションは、この本体部１４のみからなる。本体部１４は、スタートアップ部１２の実行後に実行される。
【００２０】
アプリケーション１０、スタートアップ部１２、本体部１４は、コンピュータ上で実行されることにより、それぞれ所定の機能を果たす仮想装置となる。以下では、誤解のない限り、このような仮想装置も、アプリケーション１０、スタートアップ部１２、本体部１４と呼ぶ。
【００２１】
図２はアプリケーション１０のスタートアップ部１２の機能を説明するための図である。スタートアップ部１２は、コンピュータのＯＳ（オペレーティングシステム）３０とのやり取りにより、当該アプリケーション１０の実行環境を整える。
【００２２】
ＯＳ３０は、実行環境ＤＢ（データベース）３２を有している。実行環境ＤＢ３２には、各アプリケーションについての実行環境の情報が登録されている。登録されている実行環境の情報には、例えば、アプリケーションの実行ファイルのファイル名、アプリケーションの実行ファイルがインストールされたディレクトリのパス、アプリケーションの実行に必要なライブラリプログラム（例えばＤＬＬ）のファイル名やその格納ディレクトリのパス、、アプリケーションに対応づけられたファイル拡張子など、が含まれる。ＯＳ３０は、例えば、ユーザからデータファイルの実行が指示された場合、実行環境データベース３２を参照することにより、そのデータファイルの拡張子からそのデータファイルを扱うアプリケーションを特定し、更にそのアプリケーションの実行ファイルの格納ディレクトリのパスを取得する。それら情報を用いてそのアプリケーションを起動して、そのデータファイルを処理する。
【００２３】
スタートアップ部１２は、実行環境ＤＢ検索部１２２、実行環境調査部１２４、環境比較部１２６及び環境修復部１２８を含む。実行環境ＤＢ検索部１２２は、ＯＳ３０の実行環境ＤＢ３２から、実行環境ＤＢ３２に登録されている当該アプリケーション１０の実行環境の情報（以下「登録情報」と呼ぶ）を検索する。実行環境調査部３２は、ＯＳ３０から、当該アプリケーション１０の現在（すなわちスタートアップ部１２の実行時点）の実際の実行環境の情報（例えばアプリケーション１０が起動されたときのアプリケーション１０の実行ファイルのディレクトリなど）を取得する。環境比較部１２は、実行環境ＤＢ検索部１２２で取得された登録情報と、実行環境調査部１２４で取得された実際の実行環境の情報とを比較する。環境修復部１２８は、環境比較部１２６での比較の結果、登録情報と実際の実行環境とが異なる場合に作動し、実行環境ＤＢ３２における当該アプリケーション１０についての登録情報を、実行環境調査部１２４から取得した実際の実行環境に合わせて更新する。
【００２４】
次に、図３を参照して、アプリケーション１０を実行した場合の処理手順を説明する。例えばユーザがアプリケーション１０のパスを入力したり、アプリケーション１０のアイコンをダブルクリックするなどしてアプリケーション１０の起動を指示すると、ＯＳ３０は、ファイルシステムからアプリケーション１０の実行ファイルを取り出し、アプリケーション１０を起動する（Ｓ１０）。すると、まずアプリケーション１０のスタートアップ部１２が動作を開始する（Ｓ１２）。スタートアップ部１２では、実行環境ＤＢ検索部１２２が、実行環境ＤＢ３２から、当該アプリケーション１０の実行環境の登録情報を取得する（Ｓ１４）。また、実行環境調査部１２４が、ＯＳ３０から、当該アプリケーション１０が実行されている実際の実行環境の情報を取得する（Ｓ１６）。Ｓ１４とＳ１６の処理は論理的には並列的な処理であり、いずれを先に行ってもよい。次に、環境比較部１２６が、実行環境ＤＢ３２に登録された実行環境（すなわち登録情報）と、実際の実行環境とを比較する（Ｓ１８）。この比較において実際の実行環境と登録された実行環境とが異なっていれば、環境修復部１２８が、実行環境ＤＢ３２内の当該アプリケーション１０についての登録情報を、Ｓ１６で取得した実際の実行環境の情報に整合するように更新する（Ｓ２０）。この更新処理が完了すると、スタートアップ部１２の処理が完了し、本体部１４が動作を開始する（Ｓ２２）。なお、Ｓ１８の比較処理において、実際の実行環境と登録された実行環境とが整合していれば、そこでスタートアップ部１２の処理が完了し、本体部１４が動作を開始する（Ｓ２２）。
【００２５】
次に、具体的な状況を想定して、本実施形態におけるアプリケーション１０の処理動作を説明する。
【００２６】
例えば、図４に示すように、インストーラによりいったんあるディレクトリ（例えば“Ｃ：Program Files\app”、すなわち、ディスク装置のＣドライブのProgram Filesというディレクトリの下にあるappというディレクトリ）にインストールされたアプリケーション１０について、そのインストール先のディレクトリの名称をユーザが別の名称（例えば“Ｃ：app”）に変更した場合を考える。図４には、インストールされたファイルとして、アプリケーション１０の実行ファイルである“appli.exe”の他に、解説を記したテキストファイル“readme.txt”やその実行ファイルを実行するときに用いられるライブラリ“appli.dll”が示されている。本実施形態の特徴であるスタートアップ部１２は、アプリケーション１０の実行ファイルである“appli.exe”に含まれる。
【００２７】
このディレクトリ名の変更の直後にアプリケーション１０に関連づけられた拡張子を有するデータファイルを選択して実行させようとしても、実行環境ＤＢ３２に登録された格納ディレクトリがそもそも存在しないため、ＯＳ３０はアプリケーション１０の実行ファイルを見つけることができず、アプリケーション１０を実行することができない。そこで、本実施形態では、アプリケーション１０の格納ディレクトリの名称変更後に、ユーザがアプリケーション１０を起動することにより、実行環境ＤＢ３２の登録情報を実状に整合するように更新する。すなわち、格納ディレクトリの名称変更後に、ユーザが、アプリケーション１０の実行ファイルのアイコンをダブルクリックしたり、あるいはその実行ファイルの絶対パスや相対パスを入力したりすることによりアプリケーション１０を起動すると、アプリケーション１０のスタートアップ部１２が、ＯＳ３０から実行ファイルのファイル名や起動時のディレクトリのパス情報を実際の実行環境として取得し、実行環境ＤＢ３２におけるアプリケーション１０の登録情報をその実際の実行環境の情報に合わせて変更する。この結果、実行環境ＤＢ３２は、アプリケーション１０の実行ファイルの格納ディレクトリについて正しい情報を有するよう修復されたことになるので、それ以降次に格納ディレクトリについて変更が有るまでは、このアプリケーション１０に対応づけられたデータファイルを選択して実行させると、このアプリケーション１０が正しく起動されることになる。
【００２８】
以上は、アプリケーション１０の実行ファイルの格納ディレクトリの名称を変更した場合の例であったが、アプリケーション１０の実行ファイルを別のディレクトリに移動した場合も同様であることは容易に理解されよう。すなわち、実行ファイル移動後に移動先のディレクトリにあるアプリケーション１０を起動するとにより、アプリケーション１０のスタートアップ部１２が実行環境ＤＢ３２の登録情報を実状に整合するように更新する。この結果、アプリケーション１０に関連づけられたデータファイルを実行すれば、そのアプリケーション１０が正しく起動されるようになる。
【００２９】
また、アプリケーション１０の実行ファイル名を変更した場合でも、そのアプリケーション１０を実行すれば、スタートアップ部１２の機能により実行環境ＤＢ３２に登録された実行ファイル名が正しく更新される。
【００３０】
また、図４の例において、アプリケーション“appli.exe”は、実行時にライブラリ“appli.dll”を利用するとする。このライブラリのファイル名や格納ディレクトリのパスの情報は、インストール時に例えばインストーラプログラムにより実行環境ＤＢ３２に登録される。もちろん、それらライブラリの情報がアプリケーション“appli.exe”に対応づけられていることは言うまでもない。ところが、図４の事例のようにインストール先のディレクトリ名を変更すると、ライブラリファイルの格納ディレクトリのパスが実状と整合しないものになる。本実施形態におけるスタートアップ部１２は、このような場合にも対応できる。すなわち、ディレクトリ名変更後にアプリケーション１０を起動すると、スタートアップ部１２は、まず前述の如くアプリケーション１０の格納ディレクトリのパスの登録情報を更新するとともに、必要なライブラリプログラムの実行ファイルをＯＳ３０に要求する。ＯＳ３０は、実行環境ＤＢ３２を参照してライブラリプログラムを探すが、ライブラリプログラムの格納ディレクトリの名称が実行環境ＤＢ３２に登録されたものと代わっているので、そのライブラリプログラムを発見することができない。すると、ＯＳ３０は、ライブラリプログラムが発見できなかった旨をスタートアップ部１２に通知する。この通知を受けたスタートアップ部１２は、必要なライブラリプログラムの検索を行う。必要なライブラリプログラムの名称は、実行環境ＤＢ３２から取得できるので、スタートアップ部１２は、この名称を持つファイルをファイルシステムの各ディレクトリから検索する。一般にライブラリプログラムはアプリケーション本体の実行ファイルと同じディレクトリに格納されている場合が多いので、ライブラリプログラムの検索は、アプリケーション１０の格納ディレクトリから始めるのが効率的である。検索の結果ライブラリプログラムが見つかると、スタートアップ部１２は、そのときのライブラリプログラムの格納ディレクトリのパスの情報により、実行環境ＤＢ３２の登録情報を更新する。この結果、実行環境ＤＢ３２にライブラリプログラムの正しい格納ディレクトリの情報が登録されることになり、以降アプリケーション１０が起動されると、その実行環境ＤＢ３２に基づき、必要なライブラリファイルが正しくロードされる。
【００３１】
以上はインストール先のディレクトリ名変更時の例であったが、ライブラリプログラムの実行ファイルを移動した場合も同様である。すなわち、スタートアップ部１２がライブラリプログラムの実行ファイルを検索し、発見した場合は、その時のライブラリプログラムの格納ディレクトリの情報を実行環境ＤＢ３２に登録する。なお、ライブラリプログラムの実行ファイルを発見できなかった場合は、ユーザにその旨を通知する。
【００３２】
以上、本実施形態に係るアプリケーションについて、その実行環境が変更された場合の実行環境ＤＢの修復手順について説明した。本実施形態に係るアプリケーションには、人手で簡単にインストールできるという利点もある。すなわち、図５に示すように、ファイルサーバから、ユーザが作成又は選択した任意のディレクトリ（図５では“Ｃ：Program Files\app”）に、アプリケーションの動作に必要なファイル群（アプリケーションやライブラリの実行ファイルなど）をコピーし、その後ユーザがアプリケーションの実行ファイル（“appli.exe”）を起動すればよい。これにより、アプリケーションのスタートアップ部１２が、実行環境ＤＢ３２に当該アプリケーションの実行環境が設定されていないことを検出し、実行環境ＤＢ３２に当該アプリケーションのためのエントリを作成し、実行環境の諸情報を登録する。このとき、スタートアップ部１２は、アプリケーションの実行ファイルのファイル名や格納ディレクトリの情報をＯＳ３０から取得し、実行環境ＤＢ３２に登録する。
【００３３】
したがって、本実施形態に示したスタートアップ部１２を有するアプリケーションを用いれば、インストーラと呼ばれるインストール専用のプログラムを用意する必要がない。また、インストーラプログラムが不要となるため、ソフトウエアの配布を考慮した場合、ソフトウエアのパッケージ全体のプログラムサイズを抑えることができる。
【００３４】
以上では、本実施形態に係るアプリケーションによりインストーラが不要であることを説明したが、インストーラがない場合、インストール先のディレクトリツリーの構成はユーザが自ら行わなければならないなど、ある程度のユーザの作業負担が要求される。このようなユーザの作業負担を軽減するためには、インストーラを別途用意することも効果的である。ただし、この場合のインストーラは、従来一般にアプリケーションソフトウエアのパッケージに付属していたインストーラよりも機能が限定されたものでよい。すなわち、インストーラは、アプリケーションのスタートアップ部１２が行う実行環境の登録機能を持つ必要がない。図６は、このように機能が限定されたインストーラを用いたアプリケーションのインストール手順を説明するための図である。ユーザは、あるアプリケーションを自分のマシンにインストールしたい場合、ファイルサーバ内のそのアプリケーションについてのインストーラ（図６では“Setup.exe”）を実行する。すると、ユーザのマシンの所定のディレクトリ（図６では“Ｃ：Program Files\app”）に必要なファイル群がコピーされる。そしてコピー終了後、インストーラはアプリケーション（図６では“appli.exe”）を起動する。この結果、アプリケーションのスタートアップ部１２の機能により、ＯＳ３０の実行環境ＤＢ３２に、そのアプリケーションの実行環境の情報が登録される。
【００３５】
本実施形態に係るアプリケーションには、さらにアンインストール時の実行環境情報の削除機能を組み込むことも可能である。そして、この削除機能を実現するためのコマンドオプションを設定しておく。ユーザは、アンインストールを行いたい場合、アプリケーションの実行ファイル名にそのコマンドオプションを付加して入力する。これによりその削除機能が実行され、実行環境ＤＢ３２に登録されたそのアプリケーションの実行環境の登録情報が削除される。このあと、ユーザがアプリケーションパッケージのファイル群をファイルシステムから削除すれば、システム全体に対する副作用なく、アプリケーションをアンインストールすることができる。このように本実施形態に係るアプリケーションにアンインストール機能を組み込むことにより、アプリケーション単体でインストール時の実行環境の登録及びアンインストール時の実行環境の削除を行うことができる。
【００３６】
以上、本発明の好適な実施形態について説明した。以上の説明から分かるように、本実施形態によれば、いったんインストールしたアプリケーションやライブラリの実行ファイルを移動したり、あるいはそれらの格納ディレクトリの名称などを変更した場合に、実行環境ＤＢ３２の登録情報を修復することができる。したがって、アンインストール・再インストールといった時間のかかる作業なしに、簡単にアプリケーションの移動等を行うことができる。
【００３７】
なお、本実施形態に係るスタートアップ部１２を有するアプリケーションは、例えばフロッピーディスクやＣＤ−ＲＯＭ、ハードディスク、ＲＯＭなどのコンピュータ読取り可能な記録媒体の形態でユーザに提供することができる。また、このようなアプリケーションは、通信回線を介してユーザに供給することもできる。
【００３８】
【発明の効果】
以上説明したように、本発明によれば、プログラムを実行することにより、実行環境データベースにおけるそのプログラムの実行環境の登録情報を更新・修復することができるので、プログラムの格納ディレクトリの変更（移動や名称変更など）のような実行環境の変更を行っても、そのプログラムを正しく動作させることができる。本発明によれば、アンインストール・再インストールという時間のかかる作業無しに、プログラムの実行環境を簡便に変更することができる。
【図面の簡単な説明】
【図１】  実施形態に係るアプリケーションの構成を示す説明図である。
【図２】  実施形態に係るアプリケーションのスタートアップ部の機能を説明するための説明図である。
【図３】  実施形態に係るアプリケーションを実行した場合の処理手順を示すフローチャートである。
【図４】  実施形態におけるディレクトリ名称変更時の処理手順を説明するための説明図である。
【図５】  実施形態に係るアプリケーションの人手によるインストール手順を説明するための説明図である。
【図６】  実施形態に係るアプリケーションのインストーラプログラムによるインストール手順を説明するための説明図である。
【符号の説明】
１０  アプリケーション、１２  スタートアップ部、１４  本体部、３０  ＯＳ（オペレーティングシステム）、３２  実行環境ＤＢ（データベース）、１２２  実行環境ＤＢ検索部、１２４  実行環境調査部、１２６  環境比較部、１２８  環境修復部。
【図１】
0003903563.tif 000002
【図２】
0003903563.tif 000003
【図３】
0003903563.tif 000004
【図４】
0003903563.tif 000005
【図５】
0003903563.tif 000006
【図６】
0003903563.tif 000007