メインコンテンツへスキップ
ブログサイトのロゴsui Tech Blog
1分で読めます

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

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

関連記事

GASTypeScript

GAS のロックは行単位ではない

GAS の排他制御を確かめたくて、書籍の貸出を記録するウェブアプリを Google Apps Script とスプレッドシートで作りました。LockService でロックを取得していても、その外で読んだ値を判定に使うと更新が 2 回実行されます。同じ本の貸出を 2 回実行させて確かめた結果と、判定に使う値を読む位置の決め方を書きます。

記事を読む
PythonAIJev

CSS セレクターの選び直しを、Jev に 1 リクエスト $0.0005 で任せてみる

HTML から決まった項目を取り出すコードは、対象のページの構造が変わると何も取れなくなります。CSS セレクターが一致しなくなった時点で候補をコード側で作り、どれが見出しかを選ぶ判断だけを TypeSafe の Jev に送る仕組みを作りました。架空のニュースサイトの一覧ページと記事ページで動かし、選ばれたセレクターを採用してよいかを前回の件数で確かめた結果と、1 回あたりの入力とコストをまとめます。

記事を読む
ClaudeCodeOpenTelemetryCloudflare

Claude Code で「さっきの続きやって」が一番高いのか確かめた

Claude Code の利用状況を Cloudflare D1 にためています。3 か月半ぶんのデータで、「1 時間以上あけて同じセッションに戻る最初の入力が一番高い」が自分の環境でも成り立つのかを確かめました。

記事を読む