在运行时设置CLASSPATH

时间:2010-05-24 19:48:45

标签: java .net ikvm

如何在运行时使用IKVM设置CLASSPATH变量?

我一直试图通过使用: java.lang.System.setProperty("java.class.path", "whatever");

我正在调用的类需要类路径中的配置文件才能工作 - 而且我一直收到的错误似乎表明它没有得到它的设置。

我试图添加变量的方式不正确吗?

2 个答案:

答案 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