我在文件夹Customer.java
中有一个名为d:/sample directory
的Java文件。但是当我使用Class.forName("d:/sample/Customer")
时,它会在找不到文件时抛出异常。我也试过了Class.forName("d:/sample/Customer.java")
,但得到了同样的例外。任何人都可以帮助我吗?
答案 0 :(得分:1)
Class.forName()
方法采用类的完全限定名称(FQN),而不是文件。例如,您可以将其用作
Class.forName("Customer");
假设您的Customer类在默认包中。当您使用SDK方法遇到问题时,最好咨询JavaDocs。为了将来参考,here是您尝试使用的方法的文档。
答案 1 :(得分:1)
请参阅JavaDoc's on Class以正确使用forName方法。该方法需要“所需类的完全限定名称”。一个例子如下:
Class t = Class.forName("java.lang.Thread")
如果您希望在该方法中加载它,您的Customer.java类必须位于ClassPath上。然后你必须通过完全限定的路径加载它,也就是包,然后是类名。
答案 2 :(得分:1)
java -cp d:/sample/; MainClass
)Class.forName("Customer");
答案 3 :(得分: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:运行程序:
java -cp D:/example/ com.test.MainClass
结果:
class com.test.Example