如何在运行时使用IKVM设置CLASSPATH变量?
我一直试图通过使用:
java.lang.System.setProperty("java.class.path", "whatever");
我正在调用的类需要类路径中的配置文件才能工作 - 而且我一直收到的错误似乎表明它没有得到它的设置。
我试图添加变量的方式不正确吗?
答案 0 :(得分:3)
如果您真的无法使用java
的{{1}}或-cp
参数预先设置类路径(为什么不顺便?这是正常方法),那么你可以尝试使用URLClassLoader
代替。这是一个启动示例:
-classpath
如果您正在致电的课程实际通过URL url = new URL(whateverPath);
ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
ClassLoader urlCL = URLClassLoader.newInstance(new URL[] { url }, contextCL);
Thread.currentThread().setContextClassLoader(urlCL);
// ...
加载其资源,那么 通过
Thread.currentThread().getContextClassLoader().getResource()
。
答案 1 :(得分:0)
我试图做同样的事情。我有一些jar文件编译成.Net dll,但其中一些(第三方)jar文件试图从java类路径加载他们的配置文件。
我通过为ikvmc工具指定-classloader选项解决了这个问题。例如:
ikvmc -out:mydotnetapp.dll -classloader:ikvm.runtime.ClassPathAssemblyClassLoader c:/myjavaapp/lib/*.jar
这对我有用!
解决方案的来源:http://old.nabble.com/Not-able-to-load-files-from-ClassPath-td31141788.html