2012-04-11 6 views
1

私は3つのクラスCustomerAddress、CustomerおよびCustomerMainを持っています。javac -cp:シンボルが見つかりません

お客様は、import文を持っています

import org.abc.customers.CustomerAddress; 

CustomerMainはimport文がありますがこれらのすべてのクラスのための

import org.abc.customers.CustomerAddress; 
import org.abc.customers.Customer; 

パッケージは

package org.abc.customer 
ている今、このプログラムを日食でうまく動作しますが、私がコンパイルして、cmdプロンプトで実行しようとするとコンパイルされません

javac CustomerAddress.java 

は、お客様がCustomerAddress

に依存するので、私は

javac -cp . Customer.java 

を与えるが、コンパイラが、私はそれが何ではありません知っている

error cannot find symbol CustomerAddress 

答えて

4
  1. コンパイルされたクラスは、そのパッケージ構造と一致したフォルダ構造内に存在している必要がありますこのようにして、コンパイルしてみました。たとえば、クラスcom.foo.bar.Aは、フォルダcom/foo/bar/内に存在する必要があります。
  2. antやmavenのような自動ビルドツールでは、このようなことを行うのはずっと簡単です。

コマンドラインからビルドすると決定している場合は、あなたが最初に独立したクラスをコンパイルする必要があります:

どこかのjavacができるようになることをクラスや出力、それらをコンパイルする必要があり
javac -d com/abc/customers/ CustomerAddress.java Customer.java CustomerMain.java 

それらを解決する。

1

を文句を言い、その後細かい

をコンパイル私はエクリプスからの輸出を使用して提案することがありますか?

右クリックプロジェクト - > エクスポート - > のRunnable jarファイル - > はあなたが設定権を起動しましたことを確認してください - > 残りの部分を選択してください - > クリックして仕上げ - > は

1

はあなたを持っているあなたのjarファイルを使用します

javac *.java 
0

質問を投稿する場合はそのアーティファクト私は知りませんが、あなたのパッケージ宣言は「S」なしcustomerを持っており、あなたのimport文が「S」とcustomersを持っています。ただし、同じパッケージ内でimportを実行する必要はありません。

+0

ありがとうございます。はい、その質問を投稿するのはアーティファクトです。同じパッケージ内のimportステートメントは冗長ですが、副作用もありますか、コードに無害です。 – LivingThing

+0

あなたのパッケージ名が正しく綴られている限り、それは無害だと信じています:-) –

関連する問題