ブログサイトのロゴ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

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

...

関連記事

ClaudeCodeAgentsSkills

Claude Codeへ「スキルを使って」と言うのに疲れたあなたへ

Claude CodeのAgent Skillsは、ベストプラクティスに従った実装を自動化する優れた仕組みですが、Claudeの推論による実行判定には限界があります。Playwrightを例に挙げると、「クリック操作を修正して」のような自然な指示では、descriptionに「Playwright」が含まれていてもスキルが起動しないことがあります。本記事では、UserPromptSubmitフックを活用し、キーワードマッチングによってスキルを確実に起動させる実装方法を解説します。

記事を読む
RenovateGitHubActions

Renovate で作る「頑張らない」運用のすすめ

依存関係更新の手動対応をやめて、Renovate で自動化する方法をまとめました。クールダウン期間(minimum release age)を設定してサプライチェーン攻撃のリスクを回避しつつ、手間をかけずに安全性を維持する「頑張らない運用」の設計方針を紹介します。

記事を読む
AstroNext.jsPlaywright

Next.js から Astro へ。拡張性を捨て、シンプルさを選んだ理由

ブログに「何でもできる」Next.jsは過剰スペックでした。新機能に追いつけず、Web標準APIとの相性に悩んだ末、SSGに特化したAstroへ移行しました。拡張性を捨て、「必要最小限」を選んだ技術選択の記録です。

記事を読む