2017-06-17 10 views
0

にパッケージにJavaプログラムをコンパイルしながら、私は3つのJavaクラスを持つシンボルを見つけることができません。1. App.java 2. UrlLibrary.java 3. MyIterator.javaエラー:私のJavaプロジェクトではCMD

まず、Javaのときファイルは既定のパッケージにあり、App.javaはコンパイルされ、eclipseとcmdの両方でうまく動作しています。

しかし、カスタムパッケージでjavaファイルを設定すると、Eclipseではうまく動作していますが、cmdでコンパイルしようとすると失敗します。 私は取得していますエラー: -

enter image description here

私は実際のjavacによってコンパイルしてい App.javaクラスに別のクラスを使用していますので、

はおそらく、エラーが発生しています。エラーが参照する通り:

UrlLibrary sportsurl= new UrlLibrary(sports); 

3つのJavaファイルがすべて同じパッケージに入っていて、Eclipseでうまく動作しているので、問題はありません。 このシナリオの理由は何でしょうか?

マイフォルダ構造:

enter image description here

そして、私のパッケージ:

enter image description here

+0

私の推測では、あなたのフォルダ構造は、パッケージ名と一致しないことです。あなたは私たちにフォルダ構造とパッケージ名を表示できますか? –

+0

@TimBiegeleisen ...フォルダ構造とパッケージ名を編集して表示しました。 –

+0

可能な重複:https:// stackoverflow。com/questions/25025018/javac-classpath-option-multiple-jar-files-in-current-directory-causing-erro –

答えて

0

javac <options> <source files> 

としては、あなたのように-d使用は - のjavacの構文オプションはどこに格納するかを指定しますあなたはクラスファイルを生成しました。したがって、デスクトップのクラスフォルダを使用して、生成されたクラスファイルを保存しています。それはいいです。

しかし、問題はで、App.javaを使用していますが、srcディレクトリからコンパイルするのではなく、パッケージディレクトリからコンパイルしています。また、あなたが共有したパッケージ構造によれば、App.javaはcom.eraパッケージに入っています。コンパイルするクラスでパッケージ名を指定する必要があります。

javac -d (Path of the directory for storing generated class files) com/era/App.java 

希望します。そして実行のために、このコマンドを使用してください: -

java -cp (Same directory where generated file exists) com.era.App 

ここでは、-cpはクラスパスです。また、javacで-cpを使用して、希望のクラスパスを設定することもできます。それ以外の場合は、環境変数のデフォルトのクラスパスが設定されます。 <options>をjavaまたはjavacで使用するには、cmdでjavac/java -helpを実行します。そこには<options>の詳細なリストがあります。

は便利だろう:Compile and Run Java Program in package from command line

関連する問題