回答編集履歴

3

誤字修正

2018/06/22 06:10

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -96,9 +96,9 @@
96
96
 
97
97
 
98
98
 
99
- paiza.ioおよびそのyoutubeの解説動画ではパッケージをつけていない(どこにも所属していない)Javaプログラムを予防としているので、
99
+ paiza.ioおよびそのyoutubeの解説動画ではパッケージをつけていない(どこにも所属していない)Javaプログラムを呼び出そうとしているので、
100
100
 
101
- 当然呼び出そうとしているのは hoge.javaであれば そのtestのMainクラスです。
101
+ 当然 hoge.javaであれば そのhogeのMainクラスです。
102
102
 
103
103
  パッケージが宣言されていると test.hoge.java のMainクラスを呼び出そうとします。
104
104
 

2

質問の方向性がかわったため、回答を追記

2018/06/22 06:10

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  エラーになった、エラーにならなかったの経験のみでは調査としては不十分です。
12
12
 
13
- paiza.ioについては単体ファイルでの実行になるので内部的にはデフォルトでpaiza.ioのパッケージが宣言されているのでは、と思います。
13
+ ~~paiza.ioについては単体ファイルでの実行になるので内部的にはデフォルトでpaiza.ioのパッケージが宣言されているのでは、と思います。
14
14
 
15
-
15
+ ~~
16
16
 
17
17
  とりあえず下記のような初心者向け記事に一通り目を通してください。
18
18
 
@@ -41,3 +41,73 @@
41
41
 
42
42
 
43
43
  そのコンテストの運営の人に聞いてください。
44
+
45
+
46
+
47
+ # 2018/6/22 14:55 質問の方向性が変わったので回答を修正したうえで回答を追記します。
48
+
49
+
50
+
51
+ この質問読むと多少は分かるかと。
52
+
53
+ ※GoogleでJavaのパッケージについて検索したら出てきます
54
+
55
+ - [teratail:Javaでpackageをつけると実行できない](https://teratail.com/questions/11017)
56
+
57
+
58
+
59
+ Eclipseでもなんでもですが、パッケージを作ると、実際には「ディレクトリ」ができます。
60
+
61
+ 記事にも書いてあるように「所属」であるためです。
62
+
63
+ ```java
64
+
65
+ package test;
66
+
67
+ ```
68
+
69
+ と書くと、
70
+
71
+ {プロジェクト名}/src/test
72
+
73
+ というディレクトリにjavaソースが設置されることとなります。
74
+
75
+
76
+
77
+ ただし、上記のようにpackage宣言しておきながらtestディレクトリになかったらどうなるでしょう?
78
+
79
+
80
+
81
+ これがpaiza.ioで起きている現象です。
82
+
83
+ パッケージをつけた場合は宣言したパッケージ名のディレクトリに置いた上で、そのパッケージ名の元に呼び出さなければなりません。
84
+
85
+ ご存知の通りpaiza.ioでは単体実行のみです。Webサービスなので宣言したパッケージのディレクトリは外部から勝手に作れません。
86
+
87
+
88
+
89
+ 実行したときに実行結果にはエラーメッセージが表示されますよね?
90
+
91
+
92
+
93
+ ```Error: Could not find or load main class Main```
94
+
95
+ Mainクラスは見つからなかった(またはロードできなかった)
96
+
97
+
98
+
99
+ paiza.ioおよびそのyoutubeの解説動画ではパッケージをつけていない(どこにも所属していない)Javaプログラムを予防としているので、
100
+
101
+ 当然呼び出そうとしているのは hoge.javaであれば そのtestのMainクラスです。
102
+
103
+ パッケージが宣言されていると test.hoge.java のMainクラスを呼び出そうとします。
104
+
105
+
106
+
107
+ これがその違いです。
108
+
109
+
110
+
111
+ 元の質問にあった役割について理解できたらおそらくその違いも想像できたのではないかと思います。
112
+
113
+ (オブジェクト指向に関わるところでもあるので、きちんと学んでおいた方が良いです)

1

修正

2018/06/22 06:01

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -6,11 +6,11 @@
6
6
 
7
7
 
8
8
 
9
- どこまで調べて質問に至ったのか書いてないので
9
+ どこまで調べて質問に至ったのか書いてないので、丸投げに近いように感じます。
10
10
 
11
11
  エラーになった、エラーにならなかったの経験のみでは調査としては不十分です。
12
12
 
13
- paiza.ioについては単体ファイルでの実行になるので内部的にはpaiza.ioのパッケージが宣言されているのでは、と思います。
13
+ paiza.ioについては単体ファイルでの実行になるので内部的にはデフォルトでpaiza.ioのパッケージが宣言されているのでは、と思います。
14
14
 
15
15
 
16
16