java - 将 Scala 库转换为 DLL (.NET)

标签 java scala dll ikvm

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

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

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

最好的问候, 克里斯托夫

最佳答案

我不了解 .NET,但从 SK-logic 和您对问题的评论来看:sbt package does not include the Scala runtime library,因为它假设您要将您的项目导出为一个库,以便在其他 Scala 项目中使用。

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

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

关于java - 将 Scala 库转换为 DLL (.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11556244/

相关文章:

java - 如何从流中获取列表列表而不是数组列表?

c++ - 将 std::string 传递给 C++ DLL 以便与 C# dll 一起使用

c++ - 多个 DLL 的问题

java - 如何序列化/反序列化 X509Certificate

java - Android:通过索引获取arrayList元素

java - 为什么需要关闭 Java 中文件打开的连接?

scala - Scala 中抽象特征的语义

regex - Scala:使用正则表达式提取字符串的一部分

scala - 如何使用匹配类型列表中的模式匹配结果?

Java NetBeans - 将我的 .DLL 存储在 PATH 中 - 它在哪里?