- - PR -
IMPORTの宣言方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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を呼び出したい場合はどのように記述すればよいのでしょうか。 ご教授よろしくお願いいたします。 | ||||
|
投稿日時: 2005-06-06 13:05
勘違いされているようですが、importによって可能なことは、クラスやインタフェースを
パッケージなしで指定できることだけです(java.util.*をimportしておけばjava.util.List をListとして宣言できるなど)。ですからimportの指定はファイルの位置にはまったく関係 ありません。 クラスファイルの配置場所については、それぞれのアプリケーションから参照可能な位置に 配置する必要があります。通常はあるアプリケーションが配置されているディレクトリ以下を 他のアプリケーションが参照することはありません(不可能ではありませんが)。ご質問の 場合であれば、通常はそれぞれのアプリケーションのディレクトリにそれぞれクラスファイルを 配置します。 | ||||
|
投稿日時: 2005-06-06 13:33
packageが、名前解決のみのために使用されているのは知っているのですが、
たとえば、 APP_A APP_B APP_COM (APP_A,APP_Bはアプリケーションのルートディレクトリ) とあって 共通のコンポーネント郡をAPP_COMの中に入れて APP_A,APP_Bから使う みたいな使い方ができないかと思いまして。。。 (パッケージ名をフルパスで指定するのを避けたいです) | ||||
|
投稿日時: 2005-06-06 14:26
共通のコンポーネントはjarに固めてWEB-INF/libとかに放り込めばいいんじゃないでしょうか。
どちらにしろ、import時はパッケージ名をフルパスで指定するような・・・? | ||||
|
投稿日時: 2005-06-06 15:18
単純に、
import model.model_A; import model.model_B; と記述したくない、ということであれば、 import model.*; と記述すればよいと思いますが、前の書き込みにも書いたとおり、ファイルの位置とは無関係です。 異なるアプリケーションで、共通のクラスを参照する場合は、Odakazさんが書かれている通り jarにまとめてそれぞれのアプリケーションのWEB-INF/libに入れるか、システムクラスパス から参照できる場所に設置するか、複数のアプリケーションをEARにまとめてしまう、という ことも考えられます. | ||||
|
投稿日時: 2005-06-06 16:17
Ukさん、Odakazさん
ありがとうございます。 JARファイルにしてしまうと、簡単に逆に編集ができなくなってしまうので できれば、避けたいと思っているのですが、、、。 | ||||
|
投稿日時: 2005-06-06 16:24
「編集」とは何をどうすることを指していますか? 避ける理由がわからないのですが。 | ||||
|
投稿日時: 2005-06-06 17:47
たとえば
ソース内のint_A という変数を→int_B に変更した場合、 JAR形式にしていない場合は ソース変更→コンパイル すればいいと思うのですが、 JAR形式にしている場合は ソース変更→コンパイル→JARにまとめる ことをしないといけないですよね。 手間がひとつ増えるのでいいたかったのですが、 もしかして私、勘違いしてますか、、、。 |