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

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

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

1394閲覧

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

nmmn_3558

総合スコア3

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2020/11/17 14:39

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

java

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

java

1package calcapp.logics; 2public class CalcLogic { 3 public static int tasu(int x,int y) { 4 return x + y; 5 } 6 public static int hiku(int x,int y) { 7 return x - y; 8 } 9}

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

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

と出ます。

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

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ファイルが生成されます。

CMD

1C:\projects>dir 2 ドライブ C のボリューム ラベルは HOGEFUGA です 3 ボリューム シリアル番号は AAAA-FFFF です 4 5 C:\projects のディレクトリ 6 72020/11/18 00:04 <DIR> . 82020/11/18 00:04 <DIR> .. 92020/11/17 23:58 <DIR> calcapp 10 0 個のファイル 0 バイト 11 3 個のディレクトリ 5,316,739,072 バイトの空き領域 12 13C:\projects>javac calcapp\main\Calc.java 14 15C:\projects>dir calcapp\logics 16 ドライブ C のボリューム ラベルは HOGEFUGA です 17 ボリューム シリアル番号は AAAA-FFFF です 18 19 C:\projects\calcapp\logics のディレクトリ 20 212020/11/18 00:04 <DIR> . 222020/11/18 00:04 <DIR> .. 232020/11/18 00:04 313 CalcLogic.class 242020/11/17 23:55 202 CalcLogic.java 25 2 個のファイル 515 バイト 26 2 個のディレクトリ 5,314,043,904 バイトの空き領域 27 28C:\projects>dir calcapp\main 29 ドライブ C のボリューム ラベルは HOGEFUGA です 30 ボリューム シリアル番号は AAAA-FFFF です 31 32 C:\projects\calcapp\main のディレクトリ 33 342020/11/18 00:04 <DIR> . 352020/11/18 00:04 <DIR> .. 362020/11/18 00:04 967 Calc.class 372020/11/17 23:57 314 Calc.java 38 2 個のファイル 1,281 バイト 39 2 個のディレクトリ 5,314,043,904 バイトの空き領域 40 41C:\projects>

投稿2020/11/17 15:16

編集2020/11/17 15:18
dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nmmn_3558

2020/11/17 23: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を使用します というエラー文が出ます。
dodox86

2020/11/18 00:07

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

2020/11/18 00:23

あとひとつ気が付きましたが、 > $ pwd > /c/Users/aa/OneDrive/デスクトップ/work > > $ javac Calc.java これ、違います。カレントディレクトリ上にCalc.javaファイルは存在しないので、コマンドラインとしては「javac calcapp/main/Calc.java」です。回答でもそれ相当になっています。
nmmn_3558

2020/11/18 15:38

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問