/ / Che cosa ha realmente bisogno di IKVM per un jar per l'esecuzione in C #? - c #, java, ikvm

Che cosa ha realmente bisogno di IKVM per un jar per l'esecuzione in C #? - c #, java, ikvm

Sto usando weka per C # e sto provando a portare il weka.jar in c # -dll usando IKVM. Il tutorial può essere trovato Qui.

Ora, ecco quello che ho ottenuto nel mio bin directory del programma C #:

weka.dll - generato da IKVM

IKVM.OpenJDK.Core.dll - dalle librerie IKVM

JVM.dll - dalle librerie IKVM

e java / bin è nella mia variabile PATH.

Ma il programma si rompe a

weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader("iris.arff"));

e l'errore è in fase di inizializzazione di java.io.File

Penso che sia perché alcune DLL sono mancanti in C # / bin

Posso risolverlo copiando tutte le DLL relative a IKVM e Java nella directory C # / bin, tuttavia è così brutto.

Ora arriva la mia domanda: quali librerie di runtime fa a Java ==IKVM==> C# il programma ha davvero bisogno?

Ho copiato tutto ciò che è relativo nel C # / bin e ha funzionato.

Ma credimi che non voglio farlo.

risposte:

1 per risposta № 1

Mai senza di te puoi rispondere alla domanda cheparti di Java / IKVM richieste dal programma. Sei l'unica persona che conosce il tuo programma. Un piccolo programma richiede circa il 50% delle DLL di IKVM. Questo perché le dipendenze in Java sono molto grandi.

Il minimo è IKVM.OpenJDK.Core.dll e IKVM.Runtime.dll. Ma non aggiungerei dll by dll. Altrimenti lo rimuoverò passo dopo passo. È possibile utilizzare i nomi dei file dll o Ilspy per vedere quale DLL non è probabile.

Ecco alcuni che sono rari e per i quali viene utilizzato. Questo può darti un suggerimento:

  • IKVM.OpenJDK.Tools.dll - Compilatore Java
  • * .exe - diversi strumenti
  • IKVM.OpenJDK.Jdbc.dll - API SQL e database
  • IKVM.OpenJDK.Corba.dll - Corba
  • IKVM.OpenJDK.Beans.dll - Plain Old Beans
  • ikvm-native-win32 - *. dll, JVM.dll, IKVM.Runtime.JNI.dll - roba nativa, se il proprio codice Java utilizza già una dll
  • IKVM.OpenJDK.Naming.dll - Servizi di denominazione come LDAP, DNS
  • IKVM.AWT.WinForms.dll, IKVM.OpenJDK.SwingAWT.dll - Immagini, caratteri, GUI