Never without you can answer the question which parts of Java/IKVM your program need. You are the only person that know your program. A small program need approx 50% of the IKVM dlls. This is because the dependencies in Java are very large.
The minimum is IKVM.OpenJDK.Core.dll and IKVM.Runtime.dll. But I would not add dll by dll. Else I would remove it step by step. You can use the dll file names or Ilspy to see which dll do you probable does not need.
Here are some which are use rare and for which it is used. This can give you a hint:
- IKVM.OpenJDK.Tools.dll - Java Compiler
- *.exe - different tools
- IKVM.OpenJDK.Jdbc.dll - SQL and database API
- IKVM.OpenJDK.Corba.dll - Corba
- IKVM.OpenJDK.Beans.dll - Plain Old Beans
- ikvm-native-win32-*.dll, JVM.dll, IKVM.Runtime.JNI.dll - native stuff, if your Java code use already a dll
- IKVM.OpenJDK.Naming.dll - Naming services like LDAP, DNS
- IKVM.AWT.WinForms.dll, IKVM.OpenJDK.SwingAWT.dll - Images, Fonts, GUI