2012-03-04 6 views
0

パス/クラスパスに設定されていないディレクトリにあるプログラムを持っていて、コンソール上で-cpオプションを使用して実行します。しかし、私はpackageディレクトリに移動し、私はここで間違ってやっている何クラスパスを設定せずにJavaプログラムを実行

MyBook-Pro:out flopes$ java -cp . de.my.package.MainClass 

を使用してメインクラスを実行しようと関係なく、私は-cp

- out 
`- de 
    `- my 
    `- package 
    `- MainClass.class 

として設定したものの、NoClassDefFoundExceptionを取得しますか?

+1

'out'ディレクトリから同じコマンドを実行します。 – hmjd

+0

http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/classpath.htmlを参照してください。 – MJM

答えて

1

クラスパスは

  • jarファイルパッケージツリーの根を含む
  • ディレクトリが含まれている必要があります。

あなたのパッケージがde.my.packageであれば、根はdeあり、かつdeを含むディレクトリをクラスパスになければなりません。

したがって、packageディレクトリにある場合、クラスパスは../../..に設定する必要があります。outディレクトリはクラスパスに含めるディレクトリです。

また、.をクラスパスとして使用する必要がありますが、outディレクトリからプログラムを起動してください。

関連する問題