JAVA-在开始时运行外部jar文件
我想创建一个运行的应用程序,它有一个文件夹,其中包含小游戏的jar文件。我想分别创建这些小游戏,因为这样可以更容易地交换游戏。我只是不知道如何将这些jar文件加载到另一个已经运行的应用程序中,这样我就可以访问jar文件中的类,并使用注释调用正确的方法 因此,TL;DR,如何在运行时将类添加到类路径 致以亲切的问候,JAVA-在开始时运行外部jar文件,java,class,load,runtime,Java,Class,Load,Runtime,我想创建一个运行的应用程序,它有一个文件夹,其中包含小游戏的jar文件。我想分别创建这些小游戏,因为这样可以更容易地交换游戏。我只是不知道如何将这些jar文件加载到另一个已经运行的应用程序中,这样我就可以访问jar文件中的类,并使用注释调用正确的方法 因此,TL;DR,如何在运行时将类添加到类路径 致以亲切的问候, 斯坦在我看来,你所做的可能不是最好的方式。 话虽如此,以下解释将帮助您实现您的目标: Java使用ClassLoader,它是一个Java对象,从特定路径(通常是Java类路径)加载
斯坦在我看来,你所做的可能不是最好的方式。 话虽如此,以下解释将帮助您实现您的目标: Java使用
ClassLoader
,它是一个Java对象,从特定路径(通常是Java类路径)加载类。为了动态加载jar,您只需创建一个引用jar的URL
的URLClassLoader
,或者根据您的用例,将jarURL
添加到当前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();
当然,您应该使新实例的创建适应您的类等。什么是在运行时添加类
?无法了解应用程序中需要的运行时行为。@Ankit我需要能够在主应用程序首次运行时将jar文件添加到类路径中。所以我可以很容易地交换“迷你游戏”(jar文件),你介意分享一下你认为最好的方式吗?谢谢你的回答,顺便说一句,有用。@Stannies当你需要动态加载构建时未知的jar时,可以使用这段代码。如果JAR是预先知道的,只需将它们全部放在项目的class_路径中,然后您就可以引用它们的类,而无需加载JAR等。