- PR -

コンパイルが通らない。。。

1
投稿者投稿内容
りょうちん
ベテラン
会議室デビュー日: 2002/09/11
投稿数: 58
投稿日時: 2002-11-05 13:40
いつもおせわになっています。

早速ですが、
同じフォルダにクラスを置いているのに、そのクラスだけが認識されず、
コンパイルが通りません。

そのクラス自体はコンパイルが通り、クラスもできているのですが、、

インスタンスを生成する所で、「シンボル解釈ができません」と落ちてしまいます。

LogWriter lw = new LogWriter();

  省略

lw.outLog( );

  省略
どなた様かよいアドバイスをいただければ幸いですよろしきうお願いします。
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2002-11-05 14:13
こんにちは。

>インスタンスを生成する所で、「シンボル解釈ができません」と落ちてしまいます。

だけで判断するしかないのですが・・・。

1.呼び出しているクラスをパッケージ化しているのにimportしていない。
(追記・1.は別のコンパイルエラーが出力されますね・・・)
2.そもそもタイプミスをしている。

位しか思いつきません。
他に何かありましたっけ・・・?

→思い出しました。
3.コンストラクタへ渡す引数を間違えている。
例)LogWriter(String logstr)のみが宣言されているクラスに対して、
 デフォルトコンストラクタ(=new LogWriter())で呼び出そうとする。

コンストラクタを明示的に作成しなければ、デフォルトコンストラクタとして、
LogWriter()のような引数無しのコンストラクタが暗黙のうちに作られるのですが、
明示的に作成した場合、デフォルトコンストラクタは作成されません。
明示的にLogWriter()を作成する必要があります。

私の少ない知識では、これ位しか思いつきませんが、どうでしょうか?

[ メッセージ編集済み 編集者: BBC 編集日時 2002-11-05 15:10 ]
たららん!
会議室デビュー日: 2001/11/25
投稿数: 10
投稿日時: 2002-11-10 01:14
くわしくはわからないですが、こんな経験があります。

私も単体ではコンパイルが通らなくて困っていたときに、
全コンパイルでするとうまくいきました。
javac *.javaで全コンパイルをして見てください。

りょうちんさんの場合と同じかどうかはわかりませんが・・・
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-11-10 07:14
それは同じフォルダ内のJavaファイルにclasspathが通っていないからです。


解決策:
1.環境変数のclasspathにカレントディレクトリ(".")を足す。
2.コンパイル時にクラスパスを指定。($javac -classpath "." hoge.java
3.フォルダ内、全コンパイル。($javac *.java
のどれかになります。

似たような話題がここにあります。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1341&forum=12
1

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