Java 如何使用URLClassLoader重新加载已更改的类文件
我正在开发智能卡测试仪。测试用例脚本文件是用java编写的。在这个测试仪中,我有用于编辑测试用例文件的编辑器。在编辑之后,这些文件应该能够被编译、加载和实例化 我已经使用JavaCompiler完成了编译工作。问题在于装载量。我使用URLClassLoader.newInstance获取URLClassLoader对象,并动态加载我的.class。它工作得很好,只是即使案例文件已被编辑和编译,它也不会重新加载类文件。它使用类文件的旧版本并给出旧结果。仅当我重新启动测试仪时,它才会加载新的类文件 我有没有办法通过使用URLClassLoader来控制类文件的重新加载Java 如何使用URLClassLoader重新加载已更改的类文件,java,classloader,Java,Classloader,我正在开发智能卡测试仪。测试用例脚本文件是用java编写的。在这个测试仪中,我有用于编辑测试用例文件的编辑器。在编辑之后,这些文件应该能够被编译、加载和实例化 我已经使用JavaCompiler完成了编译工作。问题在于装载量。我使用URLClassLoader.newInstance获取URLClassLoader对象,并动态加载我的.class。它工作得很好,只是即使案例文件已被编辑和编译,它也不会重新加载类文件。它使用类文件的旧版本并给出旧结果。仅当我重新启动测试仪时,它才会加载新的类文件
非常感谢。在编辑器的保存操作中,调用加载类方法。加载类后,通常无法修改该类实例。唯一的选择是:
谢谢你的回答。根据您的建议,似乎每次需要重新加载新版本类时,我都会创建一个新的URLClassLoader对象来解决这个问题。它确实加载了新编译的类文件。我担心这会引起任何问题吗?测试人员用户通常使用它几个小时,他们可能会创建数百个ClassLoder。当我决定创建一个新的类加载器时,我已经将它们设置为null,我知道java垃圾收集器将处理这个问题,但我仍然担心这一点。我将观察表演,稍后在这里再次发表评论。