好吧,考虑以下示例:
inside of the src/ folder, i have the following packages :
org/
com/
Foo 类位于 org.somepackage 中;
Doo 类位于 com.apackage 中;
Foo 需要使用 Class.forName();
访问 Doo如果我尝试使用 Class.forName("com.apackage.Doo");
我得到 ClassNotFoundException,因为它们位于不同的包中。
在此层次结构中,Foo 如何访问 Doo?
<小时/>编辑
这里有一些更多背景:
完整询问信息:
这是我的批处理文件、jar 文件和包含我尝试访问的文件的 src 文件。
这是 src 文件中的类:
这是我的批处理文件:
现在,当我尝试访问文件 Doo 时,出现以下错误:
干杯。
最佳答案
这就是问题:
java -cp src -jar FooJar.jar
When you use the -jar option, the specified JAR file is the source of all user classes, and other class path settings are ignored.
尝试运行它:
java - cp src;FooJar.jar foo.Whatever
(其中 foo.Whatever
是包含 main
方法的类的完全限定名称)。
关于java - 如何在不同的包中使用 forName() 获取类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26206741/