0

内部にいくつかのクラスを含むパッケージがありますD:\ProjectGsc\。パッケージ ルート フォルダは と呼ばれ、3 つのサブディレクトリ、gscつまり と が含まれています。それらのそれぞれの中にはいくつかのファイルがあり、その中には という名前のファイルがあります。それらとは別に、パッケージのクラス内の JFrames および JDialogs によって使用されるいくつかの画像を含むフォルダー内にもフォルダーがあります。を使用してすべてをコンパイルすることに成功し、コードがデバッグされているため、すべてがスムーズにコンパイルされます。しかし、私はそれをまったく実行できません。内部にいる間に試してみましたが、スレッド main で例外が発生しました (main の構文は確かに正しいです) 。クラスの名前がパッケージ内にあるためですかutilcoremodulescoregsc.classresgsc-classpath \projectgscjava gsc -classpath \projectgscD:\ProjetctGsc\gsc\core\java.lang.NoClassDefFoundError: gsc (wrong name: gsc/core/gsc)gscgsc.core?

前もって感謝します!(ちなみに、SOでは「実行時のクラスパスの問題」という質問に名前を付けることができないため、これが私が思いつく最高のタイトルです。自由に編集してください)

4

1 に答える 1

3

はい、パッケージ(ick - クラス名を含むパッケージ名; 紛らわしい!)で呼び出されたクラスgsc(Java の命名規則に違反しています) を実行するには、次のように記述します。gsc.core

java -classpath d:\ProjectGsc gsc.core.gsc

ただし、ディレクトリ構造が次のようになるようにコンパイルする必要があります

d:\ProjectGsc
             \gsc
                 \core
                      \gsc.class

-djavacのオプションを使用すると、これが自動的に取得されます。

javac -d d:\ProjectGsc *.java

(もちろん、適宜調整してください。)

Java を初めて使用する場合は、これらすべてを処理する IDE を使用すると、作業が楽になることに気付くでしょう。

于 2012-10-07T07:35:58.793 に答える