目的
Javaを勉強中にコンパイルができず無駄に時間を浪費したので、備忘録として投稿します。
流れ
- 階層とやりたいことの確認
- 発生したエラー
- 解消法
階層構造
Eclipseを使用
tree /f
にて階層を確認
C:\ocjp\workspace\CoffeeChoiceApp>tree /f
C:.
│ .classpath
│ .project
│
├─.settings
│ org.eclipse.core.resources.prefs
│ org.eclipse.jdt.core.prefs
│
├─bin
│ └─main
│
└─src
└─main
BestCoffeeChoiceApp.java
CheckNumber.java
CoffeeTasteList.java
ConnectDatabase.java
ExecutingClass.java
やりたいこと
BestCoffeeChoiceApp.java
をコンパイルしたい
実際にやったこと
cmdからコンパイルをしようと下記の階層に移動し実行
C:\ocjp\workspace\CoffeeChoiceApp\src\main>javac BestCoffeeChoiceApp.java
エラー内容
コンパイルしようとすると以下のようなエラーが発生した
BestCoffeeChoiceApp.java:9: エラー: シンボルを見つけられません
ConnectDatabase cd = new ConnectDatabase();
^
シンボル: クラス ConnectDatabase
場所: クラス BestCoffeeChoiceApp
BestCoffeeChoiceApp.java:9: エラー: シンボルを見つけられません
ConnectDatabase cd = new ConnectDatabase();
^
シンボル: クラス ConnectDatabase
場所: クラス BestCoffeeChoiceApp
BestCoffeeChoiceApp.java:10: エラー: シンボルを見つけられません
CheckNumber cn = new CheckNumber();
^
シンボル: クラス CheckNumber
場所: クラス BestCoffeeChoiceApp
BestCoffeeChoiceApp.java:10: エラー: シンボルを見つけられません
CheckNumber cn = new CheckNumber();
^
シンボル: クラス CheckNumber
場所: クラス BestCoffeeChoiceApp
BestCoffeeChoiceApp.java:12: エラー: シンボルを見つけられません
ExecutingClass ec = new ExecutingClass();
^
シンボル: クラス ExecutingClass
場所: クラス BestCoffeeChoiceApp
BestCoffeeChoiceApp.java:12: エラー: シンボルを見つけられません
ExecutingClass ec = new ExecutingClass();
^
シンボル: クラス ExecutingClass
場所: クラス BestCoffeeChoiceApp
エラー6個
エラー: シンボルを見つけられませんとはなんぞ?
調べてみた
上記のサイトを参考に原因をまとめた結果、以下の4点が主な原因だと判明した
- 変数やメソッド、クラスなどのスペルミス
- クラスを使用する際に必要なインポートがされていない
- private なのに外部クラスから参照したことによる不可視
- 外部ライブラリやビルドパスなどの誤り
ぼく「Eclipseで実行したときは普通に動くから、どれもありえなくない??」
解消法
上記のサイトを参考に解消した
src
をカレントディレクトリとして以下を実行する
javac main/BestCoffeeChoiceApp.java
無事コンパイルが完了した