質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

6507閲覧

Javaでパッケージを使うとエラーが出る

aiueoaiueoaiue

総合スコア94

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/06/10 14:16

編集2018/06/10 15:11

###実現したい事
Javaでパッケージを用いたソースを記述したのですが、wrong nameとエラーが出てしまいます。パッケージの記述部分をコメントアウトすると上手くいくのですが、パッケージを使うとエラーが出る原因が分かりません。すごく初歩的なミスをしている気がするのですが(ソースのミスとかではなくファイルの置き場所的なミス)、分かる方回答お願い致します。
###エラーメッセージ
java.lang.NoClassDefFoundError: kubotatsu (wrong name: kuboyama/kubotatsu)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:217)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:626)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:799)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:728)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:748)
###パッケージ部分の記述

java

1package kuboyama; 2

###ソースコード

java

1/*<applet code = "kubotatsu.class" width="300" height="100"> 2</applet>*/ 3//package kuboyama; 4 5import java.applet.*; 6import java.awt.*; 7public class kubotatsu extends Applet{ 8/*フィールド変数*/ 9 Label lbl = new Label("ラベル"); 10 Checkbox cbox1 = new Checkbox("チェックボックス(true)",true); 11 Checkbox cbox2 = new Checkbox("チェックボックス(false)",false); 12 13/*メソッド*/ 14 @Override 15 public void init(){ 16 setBackground(Color.lightGray); 17 add(this.lbl); 18 add(this.cbox1); 19 add(this.cbox2); 20 } 21}

###ディレクトリ構造のキャプチャ
イメージ説明
###補足
ソースコードはkuboyamaというディレクトリの中にkubotatsu.javaという名前で入っています。
クラスファイルもkuboyamaというディレクトリの中にkubotatsu.classという名前で入っています。
kuboyamaディレクトリでjavac kubotatsu.javaとコンパイルすると、コンパイルは通ります。
同じkuboyamaディレクトリ内でappletviewer kubotatsu.javaと実行するとアプレットが初期化されていないと表示され、エラー文がコマンドプロンプトにずらずら出ます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/10 14:20

ソースコードも載せたほうがいいと思います。
aiueoaiueoaiue

2018/06/10 14:22

パッケージ部分の記述は追加しました。この部分をコメントアウトすると何の問題もなく実行できます。この部分があると質問文のようなエラー文が表示されます
m.ts10806

2018/06/10 14:27

文章で説明するよりもディレクトリ構成の画面キャプチャなどあった方が確実に伝わります。
mather

2018/06/10 14:37

kubotatsuクラスを使う側のソースコードの記載をお願いします。
ngsvx

2018/06/10 14:53

補足にある「コンパイルは通ります」というのは、package文を外した状態ですか?
ngsvx

2018/06/10 14:59 編集

あっ、すみません、さっきの質問は勘違いでした。 アプレットということですので、HTMLのソースを見せていただきたいです。
guest

回答2

0

ベストアンサー

work/  ├ kuboyama/  │ └ kubotatsu.java  └ index.html ```  このようなディレクトリー構成でファイルを配置したとして(workは作業用フォルダー、名前はなんでもいい)、javaファイルにはpackage文を記述します。index.htmlの内容は下記のようにします。 index.html ```html <applet code="kuboyama.kubotatsu.class" width="300" height="100"> </applet>

ここで、workディレクトリー上で端末を開いて、

work>javac kuboyama\kubotatsu.java work>appletviewer index.html

とすればアプレットを起動できませんか。

イメージ説明

投稿2018/06/11 09:45

編集2018/06/11 10:15
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

wrong name 訳:間違った名前
パッケージ名が間違っていると思います

追記
http://www.javaroad.jp/faq/faq_error2.htmlより

必要なクラスが見つからない場合に発生する例外です。必要なクラスは例外の後に表示されます(java.lang.NoClassDefFoundError:○○○ の場合、○○○が必要なクラスです。)。主な原因として、以下のようなものがあります。

ファイル名は間違っていませんか。大文字小文字も区別されます。
コマンドラインで実行する際、○○○.classと拡張子も指定して実行していませんか。実行する際は、.classは必要ありません。
クラスパスは正しく設定されていますか。
※.クラスパスに.(カレントディレクトリ)は指定されていますか。
※.必要なクラスファイル、jarファイルがクラスパスに指定されていますか。
※.Tomcatの場合、必要なjarファイルがWEB-INF/libディレクトリに設置されていますか。
クラスファイル、jarファイルの権限(読取可能)は正しく設定されていますか。
QuickTimeはインストール時、環境変数CLASSPATHを設定します。古いバージョンのQuickTimeはその際、CLASSPATHに.(カレントディレクトリ)を設定しないようです。これにより、java.lang.NoClassDefFoundErrorが発生する事例があります。

投稿2018/06/10 14:22

編集2018/06/10 14:31
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問