2012-03-01 12 views
0

Customer.javaという名前のJavaファイルがフォルダd:/sample directoryにあります。しかし、Class.forName("d:/sample/Customer")を使用すると、ファイルが見つからないため例外がスローされます。私もClass.forName("d:/sample/Customer.java")で試しましたが、同じ例外が発生します。誰も私を助けることができますか?Class.forNameが指定されたディレクトリからデータをロードしていません

答えて

1

1:クラスを

package com.test; 
class Example{ 
    //empty class 
} 

2をロードする:D:にファイルを保存/example/com/test/Example.java

2:クラスをコンパイル:

javac d:/example/com/test/Example.java 

...

3:試験クラスを記述:

package com.test; 
class MainClass{ 
    public static void main(String[] args)throws Exception{ 
     System.out.println(Class.forName("com.test.Example")); 
    } 
} 

4:クラスをコンパイル:

javac d:/example/com/test/MainClass.java 

...

5:あなたは私にそれについていくつかのサンプルプログラムを与えることができ

class com.test.Example 
1

メソッドは、ファイルではなくクラスの完全修飾名(FQN)をとります。したがって、たとえば、それを

Class.forName("Customer"); 

として使用します。お客様のクラスがデフォルトパッケージであるとします。 SDKメソッドを使用して問題が発生している場合は、常にJavaDocを参照することをお勧めします。将来の参照のために、使用しようとしているメソッドのドキュメントはhereです。

1

forNameメソッドを正しく使用するには、JavaDoc's on Classを参照してください。このメソッドには、「必要なクラスの完全修飾名」が必要です。たとえば、次のようになります。

Class t = Class.forName("java.lang.Thread") 

Customer.javaクラスは、そのメソッドでロードする場合はClassPathにする必要があります。次に、完全修飾パス、パッケージ、クラス名でロードする必要があります。

1
  1. 、その後
  2. (すなわちjava -cp d:/sample/; MainClass経由)クラスパスにこのようなコードの.classファイルを追加し、ファイル
  3. を.classファイルにあなたの.javaファイルをコンパイルします。Class.forName("Customer");
+0

java -cp D:/example/ com.test.MainClass 

結果:プログラムを実行します –

関連する問題