java - 在运行时在java中创建类的实例

标签 java class runtime

在我的程序中,我动态生成类,但是当我尝试时:

String[] args = {"-d","D:\\path\\build\\classes","-s","D:\\path\\src","http://services.aonaware.com/DictService/DictService.asmx?WSDL"};
WsImport.doMain(args);
URL url = new URL("file:D:/path/build/classes/com/aonaware/services/webservices/");
URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{url});
Class service = Class.forName("com.MyClass",true,urlClassLoader );

我收到 java.lang.ClassNotFoundException

如果我再运行一次这个程序(在 Eclipse 中),那么它就可以工作了。实际上我只需要在 Eclipse 中刷新项目然后它的工作

有没有人看到问题

最佳答案

听起来像是类路径问题。确保相关类(或包含它的 jar)已编译并位于类路径中。

“动态生成类”到底是什么意思?如果您为一个类生成 java 源文件,则需要先将其编译成一个类文件,然后类加载器才能获取它。也许 Eclipse 在第二轮中做到了这一点,这就是它当时起作用的原因。

关于java - 在运行时在java中创建类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2533432/

相关文章:

swift - 快速从类型转换为字符串,反之亦然

java.lang.IllegalStateException : System services not available to Activities before onCreate() When trying to store users location as a variable 错误

Java:第一次添加调用时触发 TreeSet compareTo 方法

c++ - 为什么临时 'Test'没有移动,而只是构造?

Java { Object a = new Object(); 之间的区别a.getVariable() } 和 { new Object().getVariable() }

java - 当调用构造函数时会发生什么(在这种情况下概念很清晰)?

Android,Logcat 给出关于 SearchView 类的错误

UTF-8 的 Java Digester

java - 如何在 Android 上使用 ServiceWorkerController

c++ - c++中的初学者预期的类名错误