2010-05-24 4 views
3

IKVM을 사용하는 동안 런타임 중에 CLASSPATH 변수를 어떻게 설정합니까?런타임 중에 CLASSPATH 설정

내가 사용하여 작업을 수행하려고 노력했습니다 java.lang.System.setProperty("java.class.path", "whatever");

내가 전화 해요 클래스 것은 작동하려면 클래스 경로에 구성 파일이 필요합니다 - 그리고 나는 그것이 'hasn 것을 나타내는 것 점점 오류를 유지 그것의 설정을 얻었다.

변수를 잘못 추가하는 방법이 있습니까? 당신이 정말로 java-cp 또는 -classpath 인수를 (왜 그런데? 그게 정상적인 접근입니다)를 사용하여 자신을 사전에 클래스 경로를 설정할 수없는 경우

답변

0

나는 똑같은 일을하려했다. .Net dll로 컴파일 된 jar 파일이 있지만 일부 (제 3 자) 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

3

, 당신은 대신 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()을 통해 실제로 인 경우 운이 있어야합니다.

+0

내가 클래스 경로를 설정할 수 없습니다 이유 사전에 내가 닷넷 iKVM을 가상 머신으로 (.NET 어셈블리로 컴파일 항아리 - 파일)에서 자바 코드를 실행하는거야 것입니다. IKVM은 클래스 경로에서 읽지 않습니다. 위의 예제는 어떤 자바 코드에도 훌륭하게 작동합니다. :) – Ciddan