Study & Practice

北海道札幌市のプログラマによる技術とか雑記のブログ

以前まで正常に動いていたjavaのソースコードがコンパイルできなかったとき

前に写経して正常に動いたはずのjavaソースコードを再コンパイルしようとしたらコンパイルエラーが出た

Sample/Main.java:5: エラー: シンボルを見つけられません
BookShelf bookShelf = new BookShelf(4);
^
シンボル: クラス BookShelf

こんな感じのエラーが9個も出た。

コマンド間違えたかなといろいろ試してみたけど結果はjavacコマンドを実行するカレントディレクトリの模様

javacコマンドはコンパイルするファイルがあるディレクトリで実行する

今回で言うとIteratorディレクトリ内のMain.javaコンパイルするのに

javac -d ../class Iterator/Main.java

ではNGで

javac -d ../../class Main.java

とするとコンパイルが通った

ちなみに上記のコマンドを実行すると

Main.java:3: エラー: Mainの書込み中にエラーが発生しました: ../class/Main.class (Permission denied)
public class Main {
^
エラー1個

 

とうエラーが出る

原因がsudoコマンドがないからjavacでコンパイルするときは必ずsudoコマンドを使うこと