- PR -

IMPORTの宣言方法

投稿者投稿内容
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-06-06 12:21
%CATALINA_HOME%
・・・webapps
・・・・・・APP_A
・・・・・・・・・model
・・・・・・・・・・・・model_A
・・・・・・・・・controller
・・・・・・・・・・・・controller_A
・・・・・・APP_B
・・・・・・・・・model
・・・・・・・・・・・・model_B
・・・・・・・・・controller
・・・・・・・・・・・・controller_B

以上のようなファイル構成になっている場合
controller_Aからmodel_Aを呼び出す場合のインポート宣言として
import model.model_A;
と記述していますが
たとえば
controller_Aからmodel_Bを呼び出したい場合はどのように記述すればよいのでしょうか。

ご教授よろしくお願いいたします。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-06 13:05
勘違いされているようですが、importによって可能なことは、クラスやインタフェースを
パッケージなしで指定できることだけです(java.util.*をimportしておけばjava.util.List
をListとして宣言できるなど)。ですからimportの指定はファイルの位置にはまったく関係
ありません。

クラスファイルの配置場所については、それぞれのアプリケーションから参照可能な位置に
配置する必要があります。通常はあるアプリケーションが配置されているディレクトリ以下を
他のアプリケーションが参照することはありません(不可能ではありませんが)。ご質問の
場合であれば、通常はそれぞれのアプリケーションのディレクトリにそれぞれクラスファイルを
配置します。
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-06-06 13:33
packageが、名前解決のみのために使用されているのは知っているのですが、

たとえば、

APP_A
APP_B
APP_COM
(APP_A,APP_Bはアプリケーションのルートディレクトリ)
とあって

共通のコンポーネント郡をAPP_COMの中に入れて
APP_A,APP_Bから使う みたいな使い方ができないかと思いまして。。。
(パッケージ名をフルパスで指定するのを避けたいです)
Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2005-06-06 14:26
共通のコンポーネントはjarに固めてWEB-INF/libとかに放り込めばいいんじゃないでしょうか。

引用:

APP_A,APP_Bから使う みたいな使い方ができないかと思いまして。。。
(パッケージ名をフルパスで指定するのを避けたいです)


どちらにしろ、import時はパッケージ名をフルパスで指定するような・・・?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-06 15:18
単純に、
import model.model_A;
import model.model_B;
と記述したくない、ということであれば、
import model.*;
と記述すればよいと思いますが、前の書き込みにも書いたとおり、ファイルの位置とは無関係です。

異なるアプリケーションで、共通のクラスを参照する場合は、Odakazさんが書かれている通り
jarにまとめてそれぞれのアプリケーションのWEB-INF/libに入れるか、システムクラスパス
から参照できる場所に設置するか、複数のアプリケーションをEARにまとめてしまう、という
ことも考えられます.
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-06-06 16:17
Ukさん、Odakazさん
ありがとうございます。
JARファイルにしてしまうと、簡単に逆に編集ができなくなってしまうので
できれば、避けたいと思っているのですが、、、。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-06 16:24
引用:

北斗さんの書き込み (2005-06-06 16:17) より:
Ukさん、Odakazさん
ありがとうございます。
JARファイルにしてしまうと、簡単に逆に編集ができなくなってしまうので
できれば、避けたいと思っているのですが、、、。


「編集」とは何をどうすることを指していますか? 避ける理由がわからないのですが。
Kira
ぬし
会議室デビュー日: 2004/10/30
投稿数: 252
投稿日時: 2005-06-06 17:47
たとえば
ソース内のint_A という変数を→int_B
に変更した場合、
JAR形式にしていない場合は
 ソース変更→コンパイル
すればいいと思うのですが、

JAR形式にしている場合は
 ソース変更→コンパイル→JARにまとめる
ことをしないといけないですよね。

手間がひとつ増えるのでいいたかったのですが、
もしかして私、勘違いしてますか、、、。

スキルアップ/キャリアアップ(JOB@IT)