前提・実現したいこと
現在javaを勉強していて、「スッキリわかるJava 入門」を参考にしています。
packageの部分で躓いていて、何点か落とし込めない部分があるので、質問させていただきます。
使用しているのはMacbook Airです。練習も含めてターミナルからコンパイルと実行をしています。
また使用しているエディタはVScodeです。
1つ目、パッケージ通りのフォルダ構成にする際、格納するものは「.java」と「.class」の二つで問題ありませんか?
また「.java」と「.class」どちらかだけで良い場合、もう片方はどこのフォルダに格納?しておけば良いのでしょうか。
2つ目、現在以下のようなフォルダ構成になっています。
com - project - characters - Hero.class / Hero.java /Wizard.class / Wizard.java etc...
com - project - item - Sword.class / Sword.java
com - project - main - main.class / main.java
もし、mainをコンパイルしたい場合
ターミナルでディレクトリを「project」に移動させた上で
「〜名前〜noMacBook-Air:project 〜名前〜$」
javac main¥Main.javaを入力するとエラーが生じます。
そのため、コンパイルができない状況です。
package宣言した後の、コンパイル、実行時のターミナルの書き方がイマイチ分かっていないです。
調べてみましたが、理解力が乏しいため理解ができませんでした。
発生している問題・エラーメッセージ
エラー: ファイルが見つかりません: main¥Main.java
使用方法: javac <options> <source files>
使用可能なオプションのリストについては、--helpを使用します
該当のソースコード
package com.project.main; public class Main{ public static void main(String[] args){ Matango m = new com.project.characters.Matango(); superHero sh = new com.project.characters.superHero(); sh.run(); sh.attack(m); } }
package com.project.characters; public class Matango{ int hp; final int LEVEL = 10; }
package com.project.characters; public class superHero extends Hero{ boolean flying; public void flying(){ this.flying = true; System.out.println("羽ばたいた!"); } public void land(){ this.flying = false; System.out.println("着地した!"); } public void attack(Matango m){ super.attack(m); System.out.println(this.name + "の攻撃!"); m.hp -=5; System.out.println("5ダメージを与えた!"); } }
試したこと
mainフォルダを一つ上の階層にしてみた。
補足情報(FW/ツールのバージョンなど)
フォルダ構成の仕方も何かアドバイスあればお願いします。
回答1件
あなたの回答
tips
プレビュー