我有一个包含名为" Loadedstrategies"在bin目录中。此文件夹包含一些我动态加载的jar文件。从eclipse运行时应用程序运行正常,但是当我将我的应用程序转换为jar文件并运行jar文件时,则抛出空指针异常。 以下语句
抛出空指针异常URL url=(ClassLoader.getSystemResource("Loadedstrategies"));
我打印了url的值为null,即上面的语句没有记录url。
我正在路径bin / Loadedstrategies中保存我的jar文件。我的应用程序是通过上面的语句正确地从eclipse加载来自bin / Loadedstrategies的jar文件,但是当我将应用程序转换为jar时没有。请帮助我
答案 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");