質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.94%

エラー パッケージ**が見つかりません

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 333

score 3

Calc.javaとCalcLogic.javaというファイルがあります。
それぞれのコードは以下に記述します。

package calcapp.main;
public class Calc {
    public static void main(String[] args) {
        int x = 10; int y = 2;
        int total = calcapp.logics.CalcLogic.tasu(x,y);
        int delta = calcapp.logics.CalcLogic.hiku(x,y);
        System.out.println("足すと" + total + "引くと" + delta);
    }
}
package calcapp.logics;
public class CalcLogic {
    public static int tasu(int x,int y) {
        return x + y;
    }
    public static int hiku(int x,int y) {
        return x - y;
    }
}

このコードでjavac Calc.java と書いて?コンパイルしようとすると

エラー: パッケージcalcapp.logicsは存在しません
int total = calcapp.logics.CalcLogic.tasu(x,y);

と出ます。

これは参考書を読みながら行っているのですが、この状態だと実行時にエラーは出るが、コンパイルはできると記述されています。
なぜコンパイルができないのかわかりません。
ちなみにこの2つのソースファイルは同じmainというファイルに入れています。
そこでGitBashを開いてコンパイルしています。

言葉の使い方におかしな点やコードに頓珍漢な点は多々あるかと思いますが、お知恵をお貸しください。
宜しくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

これは参考書を読みながら行っているのですが、この状態だと実行時にエラーは出るが、コンパイルはできると記述されています。
なぜコンパイルができないのかわかりません。

お読みになっている参考書に、*.javaファイルの置き場所は指定されていませんでしたか?

それぞれの*.javaファイルの冒頭にpackage指定があるのと、Calc.java 中のコードにcalcapp.logics.CalcLogic.tasu(x,y);のような記載があるところからすると、以下のようなディレクトリ構造(ファイル配置)になっていることを想定しているようです。

calcapp/logics/CalcLogic.java
calcapp/main/Calc.java

ですので、それぞれ適切にディレクトリを作成し、その位置に*.javaファイルを配置し、calcappディレクトリよりひとつ上のディレクトリからコンパイルすることで、コンパイルは完了します。以下はGit Bashではありませんが、コマンドプロンプト上からコンパイルをした例です。コンパイルは成功し、それぞれ*.classファイルが生成されます。

C:\projects>dir
 ドライブ C のボリューム ラベルは HOGEFUGA です
 ボリューム シリアル番号は AAAA-FFFF です

 C:\projects のディレクトリ

2020/11/18  00:04    <DIR>          .
2020/11/18  00:04    <DIR>          ..
2020/11/17  23:58    <DIR>          calcapp
               0 個のファイル                   0 バイト
               3 個のディレクトリ   5,316,739,072 バイトの空き領域

C:\projects>javac calcapp\main\Calc.java

C:\projects>dir calcapp\logics
 ドライブ C のボリューム ラベルは HOGEFUGA です
 ボリューム シリアル番号は AAAA-FFFF です

 C:\projects\calcapp\logics のディレクトリ

2020/11/18  00:04    <DIR>          .
2020/11/18  00:04    <DIR>          ..
2020/11/18  00:04               313 CalcLogic.class
2020/11/17  23:55               202 CalcLogic.java
               2 個のファイル                 515 バイト
               2 個のディレクトリ   5,314,043,904 バイトの空き領域

C:\projects>dir calcapp\main
 ドライブ C のボリューム ラベルは HOGEFUGA です
 ボリューム シリアル番号は AAAA-FFFF です

 C:\projects\calcapp\main のディレクトリ

2020/11/18  00:04    <DIR>          .
2020/11/18  00:04    <DIR>          ..
2020/11/18  00:04               967 Calc.class
2020/11/17  23:57               314 Calc.java
               2 個のファイル               1,281 バイト
               2 個のディレクトリ   5,314,043,904 バイトの空き領域

C:\projects>

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/11/18 08:17

    work > calcapp >main(Calc.java/Calc.class), logic(CalcLogic.java/CalcLogic.class)
    という風にファイルを作成しています。
    以前違う状況でコンパイルしたのでクラスファイルが残っていますが、これはコンパイルのたびに上書きされるので放置で良いと思っています。ちがったらすみません。


    $ pwd
    /c/Users/aa/OneDrive/デスクトップ/work

    $ javac Calc.java
    エラー: ファイルが見つかりません: Calc.java
    使用方法: javac <options> <source files>
    使用可能なオプションのリストについては、--helpを使用します

    というエラー文が出ます。

    キャンセル

  • 2020/11/18 09:07

    Git Bash上でのコンパイルですが、ファイルを移動する前はコンパイルが成功していたのでしょうか。また、JDKはWindows版なのですよね。正確なバージョンも質問文中に追記してください。

    キャンセル

  • 2020/11/18 09:23

    あとひとつ気が付きましたが、

    > $ pwd
    > /c/Users/aa/OneDrive/デスクトップ/work
    >
    > $ javac Calc.java

    これ、違います。カレントディレクトリ上にCalc.javaファイルは存在しないので、コマンドラインとしては「javac calcapp/main/Calc.java」です。回答でもそれ相当になっています。

    キャンセル

  • 2020/11/19 00:38

    参考書にコマンドラインに関する記述が見当たらず、コマンドラインがおかしいという発想自体浮かびませんでした。
    回答いただいたのに流し見してしまい、申し訳ありませんでした。
    コンパイル成功いたしました。ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.94%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る