Ich versuche, ein nicht verwaltetes Glas zusammen mit etwas Scala-Code zu packen. Ich programmiere mit IntelliJ, und ich bin mir nicht sicher, ob das Paket korrekt erstellt wird.Ist diese build.sbt ok für die Verpackung?
Mein build.sbt
ist wie folgt:
name := "InvokeCompiler"
version := "1.0"
scalaVersion := "2.11.8"
exportJars := true
val parserLocation = "lib/parser-0.0.1.jar"
mappings in (Compile, packageBin) ~= {
_.filter(!_._1.getName.startsWith("Main"))
}
//unmanagedJars in Compile += file(parserLocation)
mappings in (Compile, packageBin) <+= baseDirectory map { base =>
(base/parserLocation) -> "parser-0.0.1.jar"
}
ich eine neue JAR-Datei erstellen möchten, die den nicht verwalteten Glas und den Code enthält ich geschrieben habe. Dieses Glas wird in .dll
umgewandelt, um es in C# zu verwenden. Aber dabei wirft IKVMC alle möglichen Warnungen aus. Wenn ich die .dll
hinzufüge produziert es die .dll
enthält nur die Klasse, die ich selbst geschrieben habe.
EDIT: Nachdem Mr. Fords Kommentar zu lesen, hier sind die Warnungen und Fehler, die ich vom Laufen ikvmc auf dem erzeugten Glas erhalten:
PROMPT:> ikvmc -target:library compiled.jar
IKVM.NET Compiler version 7.2.4630.5
Copyright (C) 2002-2012 Jeroen Frijters
http://www.ikvm.net/
note IKVMC0002: Output file is "compiled.dll"
warning IKVMC0100: Class "org.nlogo.core.FrontEndInterface" not found
warning IKVMC0100: Class "scala.Tuple2" not found
warning IKVMC0100: Class "scala.reflect.ScalaSignature" not found
warning IKVMC0100: Class "scala.Option" not found
warning IKVMC0100: Class "org.nlogo.core.Program" not found
warning IKVMC0100: Class "scala.collection.immutable.ListMap" not found
warning IKVMC0100: Class "org.nlogo.core.ExtensionManager" not found
warning IKVMC0100: Class "org.nlogo.core.CompilationEnvironment" not found
warning IKVMC0100: Class "org.nlogo.core.Femto$" not found
warning IKVMC0111: Emitted java.lang.NoClassDefFoundError in "Interface.ASTSingleton$.getFrontEndCompiledAsJSON(Ljava.lang.String;)Lscala.Tuple2;"
("org.nlogo.core.FrontEndInterface")
warning IKVMC0111: Emitted java.lang.NoClassDefFoundError in "Interface.ASTSingleton$.getFrontEndSingletion()Lorg.nlogo.core.FrontEndInterface;"
("org.nlogo.core.Femto$")
Ich möchte nicht, dass das Glas eine Hauptmethode hat, ich möchte, dass es eine Bibliothek ist, das ist alles. Durch das Extrahieren des Inhalts des resultierenden Jar werden anscheinend alle Abhängigkeiten hinzugefügt. Dann bleibt die Frage, warum ikvmc es nicht in dll konvertieren kann. Danke, zumindest scheint es mein sbt ist ok. :) – Marin
@Marin Glücklich zu helfen! Denken Sie daran, Antworten aufzuschreiben und/oder anzunehmen, die Ihnen helfen, eine Lösung zu finden oder diese Situation aufzuklären. Dadurch werden Ihnen die Menschen in Zukunft eher helfen! Ich würde auch Ihren ursprünglichen Beitrag mit den Warnungen aktualisieren, die Sie erhalten, da es weitere Hinweise bietet, die uns helfen können. –