情况:
我正在制作一个用于绘制算法时间复杂度的模拟器。学生可以添加加载自己的 .java 文件来运行它。我的程序编译(使用'JavaCompiler').java 文件。然后它会尝试加载 .class 文件:
loadedClass = loadClass("customAlgorithms."+this.getClassName()+"");
在 Eclipse 中运行我的程序时,一切正常,学生可以完美地使用该程序。
问题:
但后来我将我的项目导出到一个可执行的 jar 文件。编译部分仍然有效,但加载类失败,因为它在 jar 文件中搜索它。
我想知道为什么我不能这样做:(更改 . 与 /)
loadedClass = loadClass("customAlgorithms/"+this.getClassName()+"");
有哪些可能的选择?这是我能想到的:
将编译后的 .class 文件添加到当前运行的 .jar 文件中。这甚至可以工作吗?
我知道可以编辑 jar 档案。但是这可以在运行时工作而无需重新启动程序吗?
其他使用“loadClass()”的方法?这样我就可以加载一个不包含在我的 jar 文件中的类文件
还有其他想法吗?