Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在运行时通过Java编码将Jar加载到类路径?_Java_Swing_Netbeans_Jbutton - Fatal编程技术网

如何在运行时通过Java编码将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

我正在使用Swing in Net Beans。我有自己的jar,其中包含类和方法。我将使用JAVA反射API调用这些类和方法,但在此之前,我希望在运行时将Jar加载到类路径中。我有一个J按钮,点击这个按钮,我会得到Jar名称和Jar路径。但我无法在运行时将Jar加载到类路径。获得了一些链接,但没有帮助。请给我举个简单的例子。我应该将jar加载到类路径。这是我唯一的问题,我会解决的。请提供帮助。

您可以通过使用类加载器在运行时加载类,例如

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类以开始