回答編集履歴
3
誤字修正
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
|
-
当然
|
101
|
+
当然 hoge.javaであれば そのhogeのMainクラスです。
|
102
102
|
|
103
103
|
パッケージが宣言されていると test.hoge.java のMainクラスを呼び出そうとします。
|
104
104
|
|
2
質問の方向性がかわったため、回答を追記
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
修正
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
|
|