2017-01-09 4 views
0

Ich habe harte Zeiten versuchen, um meine .jar Bibliothek in .dll konvertieren und es durch IKVM-Framework arbeiten lassen. Ich schrieb eine Java-Bibliothek, die gut funktioniert, da es in mehreren Java-Projekten erfolgreich getestet wurde, aber ich brauche dringend die .dll für .NET.IKVM Glas zu Dll Probleme

Wenn ich den Befehl starten:

ikvm -jar mylib.jar 

alles in Ordnung ist (ich auch mit einer Hauptdatei versucht, um sicher zu sein: es funktioniert).

Aber, wenn ich schreibe:

ikvmc -target:library mylib.jar 

ich viele Warnungen bekommen, aber immer noch schafft es die DLL-Datei. Es ist wichtig zu sagen, dass ALLE Warnungen auf Bibliotheken bezogen sind, die ich NICHT in meinem Projekt verwende, aber ich bin mir ziemlich sicher, dass sie in den Paketen enthalten sind, die ich in Maven importiert habe, die für mich essentiell sind. Ich weiß nicht, ob das eigentliche Problem in diesem Schritt, da ich online lese diese Warnungen zu ignorieren, aber sicher sein, ich ein wenig von dem Ausgang schreiben:

warning IKVMC0100: Class "junit.framework.TestCase" not found 
warning IKVMC0100: Class "javax.servlet.http.HttpServlet" not found 
warning IKVMC0100: Class "javax.servlet.ServletOutputStream" not found 
warning IKVMC0100: Class "org.junit.Assert" not found 
warning IKVMC0100: Class "junit.framework.TestSuite" not found 
warning IKVMC0100: Class "org.apache.tools.ant.taskdefs.MatchingTask" not found 

Lassen Sie uns diesen Schritt vermuten ist ok Jetzt muss ich die IKVM-Bibliotheken und die mylib.dll-Datei in die Referenzen meiner C# -App importieren. Ich habe es getan und das Ergebnis ist ziemlich seltsam: die Autocomplete-Umgebung schlägt mir vor, nur 4 Java-Klassen zu verwenden und die 99% der anderen zu ignorieren. Ich nehme an, dass etwas schief gelaufen ist, aber es ist ziemlich schwer für mich zu verstehen, wo und wie ich es beheben kann.

Nur hilfreiche Informationen: Ich benutze Maven, Java8 (SDK 1.8) und IKVM 8. Ich habe auch das gleiche mit IKVM 7 versucht und immer noch die gleichen Fehler. Am Ende ist dies mein pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>org.fra.mylibrary</groupId> 
<artifactId>MyLibrary</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<name>MYLIBRARY</name> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<!-- https://mvnrepository.com/artifact/net.sourceforge.owlapi/owlapi-distribution --> 
<dependencies> 
    <!-- https://mvnrepository.com/artifact/net.sourceforge.owlapi/owlapi-distribution --> 
    <dependency> 
     <groupId>net.sourceforge.owlapi</groupId> 
     <artifactId>owlapi-distribution</artifactId> 
     <version>4.1.3</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.antlr/antlr4-runtime --> 
    <dependency> 
     <groupId>org.antlr</groupId> 
     <artifactId>antlr4-runtime</artifactId> 
     <version>4.5.3</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.21</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all --> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
     <version>2.4.7</version> 
    </dependency> 

    <!-- https://mvnrepository.com/artifact/net.sourceforge.owlapi/jfact --> 
    <dependency> 
     <groupId>net.sourceforge.owlapi</groupId> 
     <artifactId>jfact</artifactId> 
     <version>4.0.4</version> 
    </dependency> 



</dependencies> 

<build> 
    <plugins> 
     <!-- ANTLR4 --> 
     <plugin> 
      <groupId>org.antlr</groupId> 
      <artifactId>antlr4-maven-plugin</artifactId> 
      <version>4.5.3</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>antlr4</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
      </configuration> 
     </plugin> 

     <!-- Maven Assembly Plugin to create Jar --> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
     </plugin> 

     <!-- Maven Compiler Plugin --> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.6.0</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 

Antwort

0

einfach alle auf die neueste Version von Verfahren und Klassen, bezogenen Code zu entfernen und ändern Version der Bibliothek von Java zu senken, kann es funktionieren , weil ich denselben Fehler wie diesen

habe
Verwandte Themen