I've found the solution. Actually I've found where I did wrong. First I had converted java library like this:
ikvmc first.jar -target:library -out:main.library.dll ikvmc second.jar -target:library -out:second.dll -r:main.library.dll ikvmc third.jar -target:library -out:third.dll -r:main.library.dll
Then I had merged all these dlls with ILMerge. The problem wasn't in merging the dlls. The problem was in loading the resorces. The loader function is in main library. And the second and the third libraries use this loader function from main library. So the loader function searches for only its jar file that is first.jar. it doesn't search the other jars even if all of them is in the same merged dll. So I changed my convert script like this:
ikvmc first.jar -target:library -out:merged.library.dll -sharedclassloader { second.jar } { third.jar }
So, all jars merged with this one line of command. Although I don't have to use ILMerge anymore. There isn't any explanation about "sharedclassloader" in ikvmc help page. I found this explanation in this page.
来源:https://stackoverflow.com/questions/7666613/java-classes-cant-get-the-resources-in-jar-files-that-compiled-with-ikvm