- PR -

パッケージについて教えてください

1
投稿者投稿内容
リョウ
会議室デビュー日: 2002/03/06
投稿数: 3
投稿日時: 2002-03-06 19:08
JAVA独学3日目の初心者です。
どうかお力をお貸し下さい。

クラスをまとめるパッケージ機能について教えてください。
簡単なプログラムでパッケージ機能を確認していたところ、
どうしてもうまくいきません。
OSはWINDOWS_XP_HOMEです。
JDKはj2sdk1.4.0です。

c:\j2sdk1.4.0\java
にソース(.java)を置き、
パッケージをディレクトリに2つ作成しました。
c:\j2sdk1.4.0\java\pac\kopac

プロンプトでjavacが使えるように設定して、
またディレクトリについてパッケージの階層も
設定しました。
set classpath=.;c:\j2sdk1.4.0\java

コンパイラはうまくいき、pacに入れるファイルと
kopacにいれるファイルをそれぞれのフォルダにいれて
javaディレクトリで実行をしました。

するとエラーに(AskTはファイル名です。)
Exception in thread "main" java.lang.NoClassDefFoundError: AskT (wrong nam
/AskT)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.j
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)

となります。
本を見ながら行っているのですが・・・
何か重要な作業が抜けていたりするのでしょうか?

ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-03-06 23:03
惜しいですね。あと一息です。

おそらく
java AskT
で実行されたのではないかと想像しますが
java <パッケージ名>.<クラス名>
で実行してみてください。

今の場合
java pac.kopac.AskT
または
java pac.AskT
ということになるでしょうか。(AskTが含まれるパッケージの方です。)

java のクラスファイルの探し方が クラスパスを起点に コマンドに渡した引数の.classファイルを探しに行きます。
引数にパッケージ名をつけていれば、当該フォルダにある.classを探しに行きます。


とりあえず、AskT があるフォルダに移動して
java AskT
でも実行できますが、基本的には上記の方法を覚えておいた方がよいと思います。

リョウ
会議室デビュー日: 2002/03/06
投稿数: 3
投稿日時: 2002-03-07 09:19
ふうた様。

ご指摘のとおり、
java AskT
で実行していました。
java pac.AskT
で実行したら出来ました!!

ありがとうございます。
またひとつ前へ進めました。
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-03-07 12:38
おそい返事ですが・・・
JavaFAQ : Java に関するよくある質問とその回答集
Javaプログラミングの前提知識なども役にたつかも。
1

スキルアップ/キャリアアップ(JOB@IT)