JAVA - 运行 启动时的外部 jar 文件
JAVA - Run external jar file at start
我想创建一个运行的应用程序,它有一个文件夹,其中包含带有小游戏的 jar 文件。我想单独创建这些迷你游戏,因为这样更容易将游戏换入和换出。我只是不知道如何将这些 jar 文件加载到我的另一个已经 运行 的应用程序中,这样我就可以访问 jar 文件中的 类 并使用我的注释调用正确的方法。
所以,TL;DR,我如何在运行时将 类 添加到我的类路径?
谨致问候,
斯坦
在我看来,您正在做的可能不是最好的方法。
话虽如此,这里有一个解释可以帮助您实现您想要的:
Java 与 ClassLoader
一起工作,它是一个 Java 对象,它从特定路径加载 classes,通常是 Java class_path。为了动态加载一个 jar,您可以简单地创建一个 URLClassLoader
和一个 URL
引用您的 jar,或者将 jar URL
添加到当前 ClassLoader
或系统 ClassLoader
,具体取决于您的用例。加载 jar 后,您将能够实例化 Java class 的实例。
以下是使用特定 jar 创建新 Classloader
的示例:
URL url = new File(jarPath).toURI().toURL();
URLClassLoader classLoader = new URLClassLoader(url);
Object yourObject = Class.forName(className, true, classLoader).newInstance();
当然,您应该使新实例的创建适应您的class等等
我想创建一个运行的应用程序,它有一个文件夹,其中包含带有小游戏的 jar 文件。我想单独创建这些迷你游戏,因为这样更容易将游戏换入和换出。我只是不知道如何将这些 jar 文件加载到我的另一个已经 运行 的应用程序中,这样我就可以访问 jar 文件中的 类 并使用我的注释调用正确的方法。
所以,TL;DR,我如何在运行时将 类 添加到我的类路径?
谨致问候, 斯坦
在我看来,您正在做的可能不是最好的方法。 话虽如此,这里有一个解释可以帮助您实现您想要的:
Java 与 ClassLoader
一起工作,它是一个 Java 对象,它从特定路径加载 classes,通常是 Java class_path。为了动态加载一个 jar,您可以简单地创建一个 URLClassLoader
和一个 URL
引用您的 jar,或者将 jar URL
添加到当前 ClassLoader
或系统 ClassLoader
,具体取决于您的用例。加载 jar 后,您将能够实例化 Java class 的实例。
以下是使用特定 jar 创建新 Classloader
的示例:
URL url = new File(jarPath).toURI().toURL();
URLClassLoader classLoader = new URLClassLoader(url);
Object yourObject = Class.forName(className, true, classLoader).newInstance();
当然,您应该使新实例的创建适应您的class等等