动态类加载:为什么Null指针异常

时间:2015-04-07 07:41:22

标签: java eclipse jar classloader executable-jar

我有一个包含名为" Loadedstrategies"在bin目录中。此文件夹包含一些我动态加载的jar文件。从eclipse运行时应用程序运行正常,但是当我将我的应用程序转换为jar文件并运行jar文件时,则抛出空指针异常。 以下语句

抛出空指针异常
URL url=(ClassLoader.getSystemResource("Loadedstrategies"));

我打印了url的值为null,即上面的语句没有记录url。

我正在路径bin / Loadedstrategies中保存我的jar文件。我的应用程序是通过上面的语句正确地从eclipse加载来自bin / Loadedstrategies的jar文件,但是当我将应用程序转换为jar时没有。请帮助我

2 个答案:

答案 0 :(得分:0)

我最近需要这样的事情并做了以下事情:

URL myurl = new URL("file://" + PATH_TO_YOUR_JAR);  
URLClassLoader classloader = URLClassLoader.newInstance(new URL[]{myurl});  
Class<MY_INTERFACE> myclass = = (Class<MY_INTERFACE>) classloader.loadClass(NAME_OF_YOUR_CLASS);
MY_INTERFACE myinst = myclass.newInstance();

P.S。 “file://”用于linux,对于windows尝试使用“file:///”,你可以使用System.getProperty(“os.name”)检查操作系统

答案 1 :(得分:0)

我知道您有以下组织:

application jar
 |_ bin
 |   |_ Loadedstrategies
 |_ src
 ...

若是,请使用:

URL url = ClassLoader.getSystemResource("bin/Loadedstrategies");