3

IKVM を使用しているときに実行時に CLASSPATH 変数を設定するにはどうすればよいですか?

私はそれを使用してそれをやろうとしてきました: java.lang.System.setProperty("java.class.path", "whatever");

私が呼び出しているクラスが機能するには、クラスパスに構成ファイルが必要です。また、設定が取得されていないことを示すエラーが発生し続けます。

変数を追加しようとしている方法は間違っていますか?

4

2 に答える 2

3

java's-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()

于 2010-05-24T23:45:16.140 に答える
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

于 2011-11-19T15:16:17.333 に答える