いつもお世話になっております。
パッケージ化について教えて下さい。
■動作確認環境
j2sdk 1.4.2_12
CLASSPATH の設定は .;C:\sample
です。
-----
現在、以下のようなフォルダ構成で、パッケージ化とアクセス制御の勉強をしています。
C:\sample
|__ testpackage01
|__ TestParent.java
C:\sample
|__ testpackage02
|__ TestChild.java
やりたかったことは、TestChild が TestParent を継承し、"別パッケージでも親クラスの protected 変数 / メソッドはアクセスできる"ということの確認です。
しかし、TestParent の実行時に "NoClassDefFoundError: TestParent (wrong name: testpackage01/TestParent)" の RunTimeException が発生してしまいます。
コンパイルは正常に通ります。また、TestParent のパッケージ宣言 "package testpackage01;" をコメントアウトすると、正常に実行できます。
TestParent の処理は、mainメソッドの中で、文字列の表示を 1行行っているだけです。
自分ではもうどこをどうしたらよいのか、さっぱり分からなくなってしまいました。
間違っている部分をどなたかにご教授頂けたら幸いです。
宜しくお願い致します。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
java実行時のディレクトリとjavaコマンドの引数を書いてみてください。
この回答への補足
Bonjin さん、ご回答ありがとうございます。
java実行時のディレクトリとjavaコマンドの引数は、以下になります。
C:\sample\testpackage01>java TestParent
再度ご回答頂けたら幸いです。
宜しくお願い致します。
No.2
- 回答日時:
>C:\sample\testpackage01>java TestParent
実行開始ディレクトリー=無名パッケージとして扱われるので、
TestParentに package宣言を書くとエラーになります。
それに、package内のクラスから直接実行開始というのは、packageの解説サイトでもあまりみたことないですけど。
実行開始ディレクトリー(無名パッケージ)を C:\sample として、ここにmain実行クラスをおいて
mainクラスで testpackage01.TestParent と testpackage02.TestChild とのインスタンスを生成して、各インスタンスから実行したmethodがどのように振る舞うのかを見ることで
protected methodや public methodの挙動を捕らえることが出来ると思います。
http://www.nextindex.net/java/packageUse.html
参考URL:http://www.nextindex.net/java/packageUse.html
今回は、javaコマンドの後のクラス名は「完全修飾クラス名」を記述することによって、疑問に思っていたことは解決致しました。
main実行クラスについては、あくまでもデバッグのため暫定的に記述したものです。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- 数学 最大エントロピー原理をpythonで実装したい 2 2022/06/21 13:10
- UNIX・Linux Fedoraのupgradeで、libruby.so.3.0()がinstallできないという 1 2023/03/30 16:42
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- IT・エンジニアリング ソフトウェアベンダーのことを調べていて、パッケージとSaaSに分かれているから明確に定義の違いを今一 1 2023/04/20 14:30
- Windows 10 bash の -z オプションがうまく動作しない原因を教えて下さい。 4 2023/03/22 18:04
- UNIX・Linux Linuxのパッケージ更新で更新前に再起動が必要か確認する方法を教えてください。 needs-res 2 2022/03/24 20:30
- Java 助けでください!!!!!!!!!!!! 4月から働き始めた新人SEです。 皆さんの体験談等を教えてい 7 2022/07/28 23:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
split関数で区切り文字がない場合
-
Javascriptの値をJava(JSP)へ渡...
-
「ワークスペースをビルド中」...
-
コミット前の更新データをチェ...
-
javacでStackOverflowError
-
eclipseのjavaを実行できない
-
Eclipse(JAVA)のデバッグで他...
-
eclipse実行ができない
-
JAVAにのeclipseに関する質問で...
-
jasper.exceptionとは?
-
エクセルマクロエラー'Global'...
-
javascriptで、style undefined...
-
eclipseでスタックサイズを変更...
-
Javascriptのパーミッション
-
NoClassDefFoundError: javax/m...
-
コマンドライン引数の掛け算の...
-
Javaで年月の取得(YYYYMM形式で)
-
VBAのエラー:438
-
mySQLでロールバックされずコミ...
-
エクリプスで実行時、最新クラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
split関数で区切り文字がない場合
-
「ワークスペースをビルド中」...
-
eclipseでスタックサイズを変更...
-
コミット前の更新データをチェ...
-
JAVAにのeclipseに関する質問で...
-
Javaで年月の取得(YYYYMM形式で)
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
エクリプスで実行時、最新クラ...
-
jasper.exceptionとは?
-
環境変数設定で
-
eclipseで「サーバーで実行」表...
-
eclipseのjavaを実行できない
-
Worksheet_Changeが動かない
-
Google Colabでimport soxが出...
-
Javascriptのパーミッション
-
javaからVBAを実行する方法を教...
-
javascriptで、style undefined...
-
バイナリーコードと、ソースコ...
-
[JAVA]evalで文字列を計算式に!
おすすめ情報