ブログサイトのロゴsui Tech Blog

Java コンパイルができない

Java学習中にコンパイルができず無駄に時間を浪費した経験からの備忘録。Eclipseを使用したコンパイルエラーの解決方法。

目的

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個

エラー: シンボルを見つけられませんとはなんぞ?

調べてみた

Java「でシンボルが見つかりません」のエラー原因と対処方法を徹底解説

Javaでエラー: シンボルを見つけられませんというエラーが発生したがどうすればこのエラーを解決できるか知りたい

上記のサイトを参考に原因をまとめた結果、以下の4点が主な原因だと判明した

  • 変数やメソッド、クラスなどのスペルミス
  • クラスを使用する際に必要なインポートがされていない
  • private なのに外部クラスから参照したことによる不可視
  • 外部ライブラリやビルドパスなどの誤り

ぼく「Eclipseで実行したときは普通に動くから、どれもありえなくない??」

解消法

Java コンパイルに失敗する シンボルを見つけられません

上記のサイトを参考に解消した

src をカレントディレクトリとして以下を実行する

javac main/BestCoffeeChoiceApp.java

無事コンパイルが完了した

...

関連記事

agents-browserPlaywrightAI

AIエージェント向けに最適化されてたagents-browserをPlaywright MCPと比較検証してみた

agents-browserの「Up to 93% less context than Playwright MCP」は本当か気になったので、Yahoo! JAPANを対象にPlaywright MCPと比較してデータ削減率とトークン消費量を検証します。

記事を読む
Playwright

やはり俺のPlaywrightはまちがっている。

過去のプロジェクトから流用したPlaywrightのコードは「動いて」いました。しかし、偶然ドキュメントを読み直したとき、「動く」と「正しく動く」の間には設計思想の違いがあることに気づきました。page.evaluate()ではなくlocatorを使うべき理由、waitForNavigation()が非推奨である理由。公式ドキュメントには、単なるAPIリファレンスではなく「なぜこの方法が推奨されるのか」が書かれています。時間がない現実の中で、それでもドキュメントを読む価値とは何かを考えます。

記事を読む
ブログAI

図解から始める認知負荷との付き合い方

AI時代、文字を読む量が圧倒的に増えています。生成AIからの提案を承認する度に大量のテキストを読み込む認知負荷の高さに「もう無理だ」と感じた経験から、技術ブログに図解機能を実装しました。図解は「記憶の定着装置」として機能し、全体像を視覚的に示すことで認知負荷を下げます。本記事では、なぜ図解が有効なのか、そしてAIを活用してどう実装したのかを解説します。

記事を読む