
こんにちは。
次のようなエラーが出て困っています。
”パッケージ名.Canvasクラスの定義が重複しています。
すでにCanvas.javaと○.javaで定義されています。”
そこで、
1,現在コンパイルしているファイルで、Canvas.java
と○.javaでの定義が重複しているのかを確認しました。
しかし、その二つのファイルが、現在コンパイルしているファイル自身でした。
2,Canvas.javaと○.javaのプログラムの中身を見ました。
しかし、Canvasクラスを定義していたのは片方だけでした。
3,このエラーが出るようになる前に行った作業(一度、Canvas.javaを削除して
再び作成し直した)ことが原因で、どこかにbackupfileが作成されてしまった。
→解決できず
JBuilderを使っています。どうしたら解決できるのか、教えて下さい。お願いします。
No.2ベストアンサー
- 回答日時:
package文というのは、クラスのパッケージ名を定義するもので、
記述する場合は、必ずプログラムの先頭に記述しなければなりません。
(コメントは除く)
例えばTextFieldクラスは、正式には
java.awt.TextField
というクラス名ですが、このソースファイルの先頭には
package java.awt;
という文が記述されているはずです。
ついでに言っておきますと、当初の推測では、
1.Canvas.javaではpackage文を記述していない。
2.○.javaでもpackage文を記述していない。
3.○.javaで「import java.awt.*;」の記述がある。
4.○.javaでCanvasクラスを使っている(Canvas cv = new Canvas()のように)
だと思いました。推測があっているなら、次のような理由でエラーになります。
import文をjava.awt.*のように記述すると、コード内で出現したクラスは、
そのパッケージ名が省略されたものと判断されます。
従って、「Canvas cv = new Canvas()」の記述は、
(パッケージ無し)Canvas cv = new (パッケージ無し)Canvas()
と
java.awt.Canvas cv = new java.awt.Canvas()
のどちらとも取れるため、「どっちなのかはっきりしろ」というメッセージが
出るはずです。
度々、ありがとうございます。
JBuilderを使っている為か…
package文に相当しそうな文では、「package keisan;」
としか記述していません。次の行に続くのは、import文で
す。
1番と2番については、前述のような現状です。
3番に書いて頂いたことは、まさに当てはまって
いました。
4番目のことは、該当していませんでした。
このように回答頂き、大変勉強になります。
ありがとうございました。
No.1
- 回答日時:
推測で申し訳ないのですが、
ご質問のエラーメッセージはクラスを特定出来ないために
出ているのだと思います。
具体的には、Canvasというクラスが出現したときに、
自作のクラスだと思われるCanvas.javaと、java.awt.Canvas
のどちらかわからないのだと思います。
はっきりさせるには、
1.正確なエラーメッセージ(ファイル名、行番号は必須)
2.Canvas.javaのpackage文
3.エラーがでたファイルの、package文及び、全てのimport文
を教えてください。
推測でも,十分今後の参考にもなり,勉強になりました。
実は…
数分前に,Canvas.javaのプログラムを操作した後,
コンパイルしてみた所,なぜかエラーが消えたのです。
(何の関係もなさそうな部分っだったのですが。)
大変感謝しております。ありがとうございました。
今後もよろしくお願いします。
ところで,package文とは,どのような文を指すの
でしょうか?javaファイルのどの部分に書いてある
ものなのでしょうか?まだ勉強をし始めたばかりで
すみません。教えて下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- オンラインゲーム とても急いでいます。Minecraft Java版についてです。 MinecraftのJava版でマ 1 2023/03/15 21:19
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Java JavaでWebページ作成 7 2023/07/21 21:09
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラスのプロパティに構造体を...
-
3年間同じクラスになる確率
-
配列の重複する値とその個数を...
-
数学の計算問題。 3年間同じク...
-
string formatについて
-
同じクラスにならない確率を教...
-
千代田区にできる三菱の総力を...
-
ATLとMFCの違いは何でしょうか?
-
進学校通ってたんですけど、眼...
-
SWING で Button? JButton?
-
pictureBoxの画素値取得法
-
私はクラスLINEにまだ入れてな...
-
main()を持つクラスが2つ以上...
-
CListCtrlクラスに初期化する関...
-
新しいクラスLINEでだいたいの...
-
ドキュメントクラスの取得方法
-
EclipseでJSPのコンパイルエラー
-
Java「デフォルトのパッケージ...
-
VBAもしくはVB6:クラスの中で...
-
「~も自分だって~」の意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同じクラスにならない確率を教...
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
3年間同じクラスになる確率
-
どこからも呼ばれていない無意...
-
共通で使う関数を集めたクラス...
-
ページ遷移時にアコーディオン...
-
同じパッケージ、クラス名が含...
-
IPアドレスの3バイト目の呼び方
-
同一パッケージにあるクラスが...
-
EclipseでJSPのコンパイルエラー
-
コンボボックスのマウスホイー...
-
Cstring(日本語含む)をcharに...
-
dllと同じプロジェクトにする方法
-
VBAもしくはVB6:クラスの中で...
-
main()を持つクラスが2つ以上...
-
複数のクラスで共通した関数を...
-
重複エラーを解決するには
-
string formatについて
-
UMLのクラス図はmain()も含むん...
おすすめ情報