Java - 从Jar文件创建一个类

cla*_*ebb 5 java oop class

是否可以从jar文件加载一个类,然后从中创建一个对象?

注意:程序编译时,jar文件不存在,但稍后由用户添加,并在用户启动程序时加载.

我的代码喜欢这样:用户有一个jar文件,其中只有一个编译过的java类.然后,用户将此jar文件放在一个目录中,并启动我的程序,该程序查看目录并找到此jar文件.然后它加载这个jar文件并从中创建一个类,然后由它创建一个对象并将其添加到数组中.

除了从jar文件创建一个类(作为java.io文件加载)然后从该类创建和对象之外,我已经完成了所有工作.

有帮助吗?谢谢.

Lui*_*oza 4

您正在寻找Class#forName方法Class#newInstance

此链接提供了一个关于初始化知道其名称的类的好示例(从链接中提取):

Class c = Class.forName("com.xyzws.AClass");
AClass a = (AClass)c.newInstance();
Run Code Online (Sandbox Code Playgroud)

这些情况的一个很好的例子是使用 JDBC(正如链接也指出的那样),因为您初始化了要连接的数据库引擎驱动程序的对象。请记住,该驱动程序来自项目中导入的 jar,它可能是 MySQL、Oracle 或 MSSQL Server 的 jar,您只需提供驱动程序类名称,然后让 JDBC API 和 jar 处理 SQL 工作。

Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection(url, "myLogin", "myPassword");
Run Code Online (Sandbox Code Playgroud)

另外,对于动态加载 jar 的这个特定问题,有问题和答案: