- PR -

import

投稿者投稿内容
G
会議室デビュー日: 2002/12/19
投稿数: 19
投稿日時: 2002-12-25 19:07
Gです。

今更ながらなのですが、自ら作ったクラスファイルを再利用する際にimportを利用するため下記の表記でコーディングしたのですが、コンパイルエラーが返ってきてしまい、作業がとまってしまいました...。

import jp.co.xxxxx.MyLib.xml;

エラーメッセージは次の通りです。

パッケージjp.co.xxxxx.MyLib.xmlは存在しません。

JAVA初心者の私には、パッケージがないという事しか分からないのですが、一応下記のフォルダ構成にしています。

c:\jp\co\xxxxx\MyLib\xml\

コンパイルしようとしているファイルも上記の場所にあります。

どなたか、こんな私をよろしくお願いします...。
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2002-12-25 19:19
こんばんは。

引用:

今更ながらなのですが、自ら作ったクラスファイルを再利用する際にimportを利用するため下記の表記でコーディングしたのですが、コンパイルエラーが返ってきてしまい、作業がとまってしまいました...。

import jp.co.xxxxx.MyLib.xml;

エラーメッセージは次の通りです。

パッケージjp.co.xxxxx.MyLib.xmlは存在しません。

JAVA初心者の私には、パッケージがないという事しか分からないのですが、一応下記のフォルダ構成にしています。

c:\jp\co\xxxxx\MyLib\xml\

コンパイルしようとしているファイルも上記の場所にあります。


自作したクラスを取り込むためと思われますが、それなら
import jp.co.xxxxx.MyLib.xml.*;
になります。

ただ、Gさんはこれから自作ライブラリを作成されるようですので、importではなく、
package jp.co.xxxxx.MyLib.xml;
という記述を、ソースコードの最初に書かなければなりません。

とりあえず、今判明している情報から回答を。
G
会議室デビュー日: 2002/12/19
投稿数: 19
投稿日時: 2002-12-26 10:17
Gです。

BBCさん、ご返答ありがとうございます。

まさしくBBCさんのおっしゃる通り自作ライブラリを作成しようとしています。
早速importをpackageへ書き直してみたのですが、またまたエラーが出てしまいました。

> 'class' または 'interface' がありません。

interfaceは何も作ってないのですが、classは既にあるのに...何故に...。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2002-12-26 11:10
言われたとおりやってみてというのが腑に落ちませんが、
packageとimporrtをもう一度整理してみたほうがよいような。

自作ライブラリとしたいクラスにはpackage文が必要になりますし、
利用するクラスにはimportが必要です。
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2002-12-26 11:58
引用:

まさしくBBCさんのおっしゃる通り自作ライブラリを作成しようとしています。
早速importをpackageへ書き直してみたのですが、またまたエラーが出てしまいました。

> 'class' または 'interface' がありません。


うーん、このソースコードはpackage宣言を外したときに正常にコンパイル作業を終了しますか?
基本的にjavaの基本構造は、
コード:

(public | 無印) class class名 {
class名() {//コンストラクタ実装部}

返り値 メソッド名() {//メソッド実装部}
      ・
      ・
}


が基本形だと思いますが、Gさんが遭遇したエラーは、class宣言(class class名)部分が、
正しく記述されていないためと考えられます。

とりあえず、javacした結果は全て貼り付けた方が、解決の糸道をつかみやすいので、
あまり省略するのは良くないと思いますが・・・。
#恥ずかしいのは良く分かるのですが

パッケージは、昔僕も1週間ほどハマッた記憶があるので(笑)、悩んでみてください。
とりあえずヒントになりそうなリンクを↓
メールマガジン『Java言語Q&A』
Google :java package 作り方

[ メッセージ編集済み 編集者: BBC 編集日時 2002-12-26 12:07 ]

[ メッセージ編集済み 編集者: BBC 編集日時 2002-12-26 12:07 ]
G
会議室デビュー日: 2002/12/19
投稿数: 19
投稿日時: 2002-12-26 12:36
Gです。

まりり>言われたとおりやってみてというのが腑に落ちませんが、
まりり>packageとimporrtをもう一度整理してみたほうがよいような。

確かにpackageとimportをハッキリと理解できていません(^^;

import jp.co.xxxxx.MyLib.xml;
上記記述を
package jp.co.xxxxx.MyLib.xml;
このように書き直ししただけです...。

BBC>うーん、このソースコードはpackage宣言を外したときに
BBC>正常にコンパイル作業を終了しますか?

別の.javaファイルに宣言しているclassを利用していますので、このファイルのみではコンパイルできないです。

BBC>javacした結果は全て貼り付けた方が、解決の糸道をつかみやすいので、

エラーメッセージだけで大丈夫かな、と勝手に判断してました。
すみません。

BBC>とりあえずヒントになりそうなリンクを

ありがとうございます、早速サイトを確認して理解を深めます。

お手数をおかけして、ごめんなさい。
windy
会議室デビュー日: 2002/12/05
投稿数: 6
お住まい・勤務地: 愛知県
投稿日時: 2002-12-26 12:56
Javaのパッケージの概念はCのポインタと並んで初心者の誰もが引っ掛かる壁なんですね。
僕自身もコードは間違ってないはずなのにコンパイルできない、コンパイルできたら今度は起動できないといった問題で悩んだことがあります。

Javaはファイル名ではなくパッケージとクラス名で実行形式を管理しています。
packageとimportを「こう書けば動く」ではなくてどうしてそう書かなければいけないのかをじっくり理解した方がいいと思います。
SDKドキュメントのSDKツールのページから「クラスパスの設定」「クラスの検索方法」をちゃんと読めば理解できると思いますよ。

一度理解すれば難しくはありません。ですが、次は自分のライブラリのパッケージ名をどうしようかという問題に直面すると思います…
windy
会議室デビュー日: 2002/12/05
投稿数: 6
お住まい・勤務地: 愛知県
投稿日時: 2002-12-26 13:05
書き込んでから気付いたんですが、ソースコードのディレクトリ構成が、
>c:\jp\co\xxxxx\MyLib\xml\
になっているようですが、これだとコンパイル時のクラスパスの指定が「c:\」になっていないと見つかりません。
コンパイル時にクラスパスを指定せず環境変数等でカレント指定にしていると、コンパイル時のカレントディレクトリが「c:\」でないといけません。

基本的なことですが、念のため

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