scala-native 可以使用现有的 Java/Scala 库吗?
Can scala-native use existing Java/Scala libraries?
我一直无法理解一个打算由 scala-native 编译的项目是否可以:
- 使用 Java 库?如果是,它是否使 scala-native 成为 Java 和 Scala 的提前编译器?
- 使用 Scala 库(编译为 JVM 字节码)
我知道只有部分 Scala 标准库可用。是不是因为有部分实现使用了Java标准库?
万一它不能,这个缺点会不会使[非平凡]项目几乎不可能使用单个代码库编译为 JVM 和本机?有这方面的计划吗?
我在这里还算不上专家,但我在 Reddit 上问了一个类似的问题,得到的答案是 scala-native 不 与 Java 库交互(所以我认为它也无法编译它们)。
它可以改为连接到本机 ('c') 库。
我不知道有任何改变的计划。
来自scale-native.org it should support "fat" jar files, with classifies and NIR files--for example scalaz has added support for scala-native:
Publishing Scala Native supports sbt’s standard workflow for the
package distribution:
Compile your code. Generate a jar with all of the classfiles and NIR
files. Publish the jar to sonatype, bintray or any other 3rd party
hosting service. Once the jar has been published, it can be resolved
through sbt’s standard package resolution system.
可以想象,JVM 执行的 Java 库或 Scala 库可以通过 JNI 调用,类似于 C/C++ 通过 JNI 调用这些库。这样做的时间恰好是 C/C++ 需要这样做的时间,应该介于罕见(接近零)和诅咒(绝对零)之间。
我一直无法理解一个打算由 scala-native 编译的项目是否可以:
- 使用 Java 库?如果是,它是否使 scala-native 成为 Java 和 Scala 的提前编译器?
- 使用 Scala 库(编译为 JVM 字节码)
我知道只有部分 Scala 标准库可用。是不是因为有部分实现使用了Java标准库?
万一它不能,这个缺点会不会使[非平凡]项目几乎不可能使用单个代码库编译为 JVM 和本机?有这方面的计划吗?
我在这里还算不上专家,但我在 Reddit 上问了一个类似的问题,得到的答案是 scala-native 不 与 Java 库交互(所以我认为它也无法编译它们)。
它可以改为连接到本机 ('c') 库。
我不知道有任何改变的计划。
来自scale-native.org it should support "fat" jar files, with classifies and NIR files--for example scalaz has added support for scala-native:
Publishing Scala Native supports sbt’s standard workflow for the package distribution:
Compile your code. Generate a jar with all of the classfiles and NIR files. Publish the jar to sonatype, bintray or any other 3rd party hosting service. Once the jar has been published, it can be resolved through sbt’s standard package resolution system.
可以想象,JVM 执行的 Java 库或 Scala 库可以通过 JNI 调用,类似于 C/C++ 通过 JNI 调用这些库。这样做的时间恰好是 C/C++ 需要这样做的时间,应该介于罕见(接近零)和诅咒(绝对零)之间。