繁体   English   中英

Java - 从Jar文件创建一个类

[英]Java - Create a Class from a Jar File

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

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

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

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

有帮助吗? 谢谢。

您正在寻找Class#forNameClass#newInstance方法。

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

Class c = Class.forName("com.xyzws.AClass");
AClass a = (AClass)c.newInstance();

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

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

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

更简单? 方法是让用户将jar文件放在类路径中。
这样你的代码就可以访问将由jvm加载的类

编辑:甚至@Luiggi的回答都假设jar在类路径中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM