JAVA - 在开始时运行外部jar文件

时间:2017-09-14 10:02:13

标签: java class load runtime

我想创建一个运行的应用程序,它有一个包含迷你游戏的jar文件的文件夹。我想单独创建这些迷你游戏,因为这样可以更容易地进出游戏。我只是不知道如何将这些jar文件加载到我正在运行的其他应用程序中,这样我就可以访问jar文件中的类并使用我的注释调用正确的方法。

那么,TL; DR,如何在运行时向类路径添加类?

亲切的问候, 斯坦

1 个答案:

答案 0 :(得分:1)

在我看来,你所做的可能不是最好的方式。 话虽如此,这里的解释将帮助您实现您想要的目标:

Java与ClassLoader一起使用,URLClassLoader是一个Java对象,它从特定路径加载类,通常是Java class_path。为了动态加载jar,您只需创建一个URL,其中URL引用您的jar,或者将jar ClassLoader添加到当前ClassLoader或者系统Classloader,具体取决于您的使用案例。加载jar后,您将能够实例化Java类的实例。 以下是使用特定jar创建新URL url = new File(jarPath).toURI().toURL(); URLClassLoader classLoader = new URLClassLoader(url); Object yourObject = Class.forName(className, true, classLoader).newInstance(); 的示例:

spark-submit --driver-java-options "-Dlog4j.configuration=file:///absolute/path/to/log4j.properties" job.jar

当然,您应该将新实例创建调整到您的类等。