3

我正在尝试从 scala 类中创建一个 Dll。我将 IntelliJ 与 SBT 一起使用。我已经找到了一种使用 ikvm-converter 将 .jar 文件转换为 Dll 的方法。现在的问题:当我在 SBT 下使用“包”从我的 .scala 文件中创建一个 .jar 文件并尝试使用 ikvmc 将其转换为 Dll 时,结果库在集成到 C# 时为空...

例如,转换 Jama-Library(用 Java 编写)可以正常工作,而转换 Scama(用 Scala 编写)则不起作用。

有没有办法将scala代码转换为dll?是否有“Scala 到 Java”的转换工具?

最好的问候,克里斯托夫

4

1 回答 1

3

我不了解 .NET,但从 SK-logic 和您对问题的评论来看:sbt package包括Scala 运行时库,因为它假定您要将项目导出为要在其他 Scala 项目中使用的库。

因此,您将需要创建一个包含运行时的“胖”jar。例如,在此博客中,您可以看到作者如何通过转换项目 jar 和运行时 jar 来创建完全独立的可执行文件。

sbt 有不同的工具可以做到这一点。最简单的是sbt-assembly,但你最终会得到一个非常大的文件,因为它只是添加了整个运行时。如果这是一个问题,您可能希望使用proguard 插件过滤运行时。有关此主题的更多信息,请参阅另一个 StackOverflow 条目

于 2012-07-19T10:43:37.347 回答