実現したいこと
1・Mainファイルの実行
2・Mainファイルを含んでいるファイルとパッケージのファイルは同じ一つのファイル(practice)に存在してる
Mainファイルのディレクトリ
practice/main/Main.java
パッケージのディレクトリ
practice/pack/Pack.java
前提
オブジェクト指向の勉強をしていましたがパッケージとMainファイルのコンパルはできたのですが実行ができません。
Mainファイルとパッケージが同じファイルに存在していると実行はできないのでしょうか?
発生している問題・エラーメッセージ
Could not find or load main class
該当のソースコード
Java
1//パッケージ 2package practice.pack; 3 4public class Pack{ 5 int price; 6 public Pack(int n){ 7 this.price = n; 8 9 } 10 11 public boolean solve(){ 12 if(price%100==0) return true; 13 else return false; 14 } 15}
Java
1//Main 2import practice.pack.Pack; 3class Main{ 4 public static void main(String[] args){ 5 Pack p = new Pack(10); 6 System.out.println(p.solve()); 7 } 8}
試したこと
パッケージのディレクトリ、importのディレクトリを色々変えたりしましたがコンパイルができませんでした。唯一コンパイルができたディレクトリがこれです
実行しようとしたコマンド
java practice.main.Main で実行しようとしましたが上記のエラーが出ました
補足情報(FW/ツールのバージョンなど)
そんな汚いことするメリットは皆目見当付きませんが、
javac -cp ./practice/main:. practice/main/Main.java practice/pack/Pack.java
java -cp ./practice/main:. Main
で実行できます。Windowsの場合は:を;に、/を\に変えてください
>Mainファイルを含んでいるファイルとパッケージのファイルは同じ一つのファイル(practice)に存在してる
>
>Mainファイルのディレクトリ
>practice/main/Main.java
>
>パッケージのディレクトリ
>practice/pack/Pack.java
1つのファイルで無く1つのフォルダ(ディレクトリ)の間違いでしょうか。
「パッケージ」という言葉は java では package のことを指しますので、 Pack クラスのことを指すのでしたらそのまま「Pack」と書かれたほうが良いと思います。
- PackとMainは同じpractice.packパッケージに存在する
Javaのファイル名がpracticeという名前なら
- ファイル名をpublicなクラスと同じ名前にする -> Pack.java
- Pack.javaはパッケージと同じディレクトリ(フォルダー)階層に置く
  practice/pack/Pack.java
あとはコンパイル、実行する。あなたの手順とどこが違いますか?
一つのファイルの全体を追記してください。