如何在运行时使用IKVM设置CLASSPATH变量?运行时设置CLASSPATH
我一直在试图通过做到这一点: java.lang.System.setProperty("java.class.path", "whatever");
类我打电话需要在类路径配置文件来工作 - 我记住这似乎表明,它不是招”收到错误吨得到它的设置。
是我试图添加变量的方式不正确吗?
如何在运行时使用IKVM设置CLASSPATH变量?运行时设置CLASSPATH
我一直在试图通过做到这一点: java.lang.System.setProperty("java.class.path", "whatever");
类我打电话需要在类路径配置文件来工作 - 我记住这似乎表明,它不是招”收到错误吨得到它的设置。
是我试图添加变量的方式不正确吗?
我正在尝试做同样的事情。我有一些jar文件编译为.net dll,但其中一些(第三方)jar文件试图从java classpath加载它们的配置文件。
我通过为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
如果你真的不能设置使用java
的-cp
或-classpath
参数(为什么不顺便说一下?这是正常的做法)事先自己类路径,那么你可以尝试使用URLClassLoader
代替。这里有一个开球例如:
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()
加载其资源,从而不通过 SomeClass.class.getClassLoader().getResource()
。
我无法设置classpath中事先原因是,我跑在.net(JAR-文件重新编译.NET程序集)与IKVM的虚的Java代码。 IKVM不会从类路径读取。 上面的例子对任何Java代码都很有用:) – Ciddan 2010-05-25 09:40:05