如何在运行时通过Java编码将Jar加载到类路径?
我正在使用Swing in Net Beans。我有自己的jar,其中包含类和方法。我将使用JAVA反射API调用这些类和方法,但在此之前,我希望在运行时将Jar加载到类路径中。我有一个J按钮,点击这个按钮,我会得到Jar名称和Jar路径。但我无法在运行时将Jar加载到类路径。获得了一些链接,但没有帮助。请给我举个简单的例子。我应该将jar加载到类路径。这是我唯一的问题,我会解决的。请提供帮助。您可以通过使用类加载器在运行时加载类,例如如何在运行时通过Java编码将Jar加载到类路径?,java,swing,netbeans,jbutton,Java,Swing,Netbeans,Jbutton,我正在使用Swing in Net Beans。我有自己的jar,其中包含类和方法。我将使用JAVA反射API调用这些类和方法,但在此之前,我希望在运行时将Jar加载到类路径中。我有一个J按钮,点击这个按钮,我会得到Jar名称和Jar路径。但我无法在运行时将Jar加载到类路径。获得了一些链接,但没有帮助。请给我举个简单的例子。我应该将jar加载到类路径。这是我唯一的问题,我会解决的。请提供帮助。您可以通过使用类加载器在运行时加载类,例如 File yourJarFile = ...; URLCl
File yourJarFile = ...;
URLClassLoader classLoader = new URLClassLoader(new URL[]{yourJarFile.toURI().toURL()});
这将允许您加载类并实例化它们
Class class = classLoader.loadClass("fully.qualified.packagename.to.your.AwesomeClass");
然后,您可以使用类似于
Object obj = class.newInstance();
或者,如果要使用特定的构造函数,则使用反射。请记住,您将无法在当前类加载器上下文中直接引用这些类,因为当前类加载器对它们一无所知您需要使用某种类型的类加载器,请参阅。请记住,当你想加载这些类时,你需要使用这个类加载器来完成,它不会通过你一直使用的默认类加载机制来实现。令人惊讶的一个。。。。。。工作出色…非常感谢你的精彩回答。。。但是在'Class Class=classLoader.loadClassfully.qualified.packagename.to.your.AwesomeClass;'我们必须手动指定类名。。。。但是我想在运行时手动加载这个类,我也通过使用以下代码得到了解决方案:JarFile JarFile=new JarFilemyJarFile.getAbsoluteFile;枚举allEntries=jarFile.entries;而allEntries.hasMoreElements{JarEntry entry=JarEntry allEntries.nextElement;'则取决于您尝试执行的操作。执行此操作时,我通常会执行某种插件,因此我创建一个text/xml,可以使用getResource并配置要加载的entry类以开始