Setting CLASSPATH during runtime

前端 未结 2 1576
忘掉有多难
忘掉有多难 2020-12-11 09:18

How do I set a CLASSPATH variable during runtime while using IKVM?

I\'ve been trying to do it by using: java.lang.System.setProperty(\"java.class.path\", \"wh

相关标签:
2条回答
  • 2020-12-11 09:41

    I was trying to do the same thing. I had some jar files compiled to a .Net dll but some of those (3rd party) jar files were trying to load their configuration files from the java classpath.

    I solved the problem by specifying the -classloader option for the ikvmc tool. Example:

    ikvmc -out:mydotnetapp.dll -classloader:ikvm.runtime.ClassPathAssemblyClassLoader c:/myjavaapp/lib/*.jar
    

    This worked for me!

    Source for the solution: http://old.nabble.com/Not-able-to-load-files-from-ClassPath-td31141788.html

    0 讨论(0)
  • 2020-12-11 09:41

    If you really can't set the classpath beforehand yourself using the java's -cp or -classpath argument (why not by the way? that's the normal approach), then you can try to use URLClassLoader instead. Here's a kickoff example:

    URL url = new URL(whateverPath);
    ClassLoader contextCL = Thread.currentThread().getContextClassLoader();
    ClassLoader urlCL = URLClassLoader.newInstance(new URL[] { url }, contextCL);
    Thread.currentThread().setContextClassLoader(urlCL);
    // ...
    

    You only need to be lucky if the class you're calling is actually loading its resources through Thread.currentThread().getContextClassLoader().getResource() and thus not through SomeClass.class.getClassLoader().getResource().

    0 讨论(0)
提交回复
热议问题