无法在JRuby中访问Scala的Akka库

整体地

我正在使用jruby 1.7.12 (1.9.3p392),我想利用Scala Akka库。我知道Mikka宝石,但是我想手动进行。

我已经从http://akka.io/downloads/下载了Akka库“ 2.3.8” (特别是链接“ Scala 2.11的Akka 2.3.8发行版”)。

下面是文件结构(一个app.rbJRuby文件,其余是下载的Akka库)...

├── akka-2.3.8
|   ├── bin
|   ├── config
|   ├── deploy
|   ├── doc
│   ├── lib
│   │   ├── akka
│   │   │   ├── akka-actor_2.11-2.3.8.jar
│   │   │   ├── akka-agent_2.11-2.3.8.jar
│   │   │   ├── akka-camel_2.11-2.3.8.jar
│   │   │   ├── akka-cluster_2.11-2.3.8.jar
│   │   │   ├── akka-contrib_2.11-2.3.8.jar
│   │   │   ├── akka-dataflow_2.11-2.3.8.jar
│   │   │   ├── akka-durable-mailboxes-2.3.8.jar
│   │   │   ├── akka-file-mailbox_2.11-2.3.8.jar
│   │   │   ├── akka-kernel_2.11-2.3.8.jar
│   │   │   ├── akka-mailboxes-common_2.11-2.3.8.jar
│   │   │   ├── akka-multi-node-testkit_2.11-2.3.8.jar
│   │   │   ├── akka-persistence-experimental_2.11-2.3.8.jar
│   │   │   ├── akka-persistence-tck-experimental_2.11-2.3.8.jar
│   │   │   ├── akka-remote-tests_2.11-2.3.8.jar
│   │   │   ├── akka-remote_2.11-2.3.8.jar
│   │   │   ├── akka-slf4j_2.11-2.3.8.jar
│   │   │   ├── akka-testkit_2.11-2.3.8.jar
│   │   │   ├── akka-transactor_2.11-2.3.8.jar
│   │   │   ├── akka-zeromq_2.11-2.3.8.jar
│   │   │   ├── camel-core-2.10.3.jar
│   │   │   ├── config-1.2.1.jar
│   │   │   ├── guava-12.0.jar
│   │   │   ├── hamcrest-core-1.3.jar
│   │   │   ├── hawtjni-runtime-1.8.jar
│   │   │   ├── jna-3.0.9.jar
│   │   │   ├── jnr-constants-0.8.2.jar
│   │   │   ├── jsr305-1.3.9.jar
│   │   │   ├── junit-4.11.jar
│   │   │   ├── leveldb-0.5.jar
│   │   │   ├── leveldb-api-0.5.jar
│   │   │   ├── leveldbjni-1.7.jar
│   │   │   ├── leveldbjni-all-1.7.jar
│   │   │   ├── leveldbjni-linux32-1.5.jar
│   │   │   ├── leveldbjni-linux64-1.5.jar
│   │   │   ├── leveldbjni-osx-1.5.jar
│   │   │   ├── leveldbjni-win32-1.5.jar
│   │   │   ├── leveldbjni-win64-1.5.jar
│   │   │   ├── netty-3.8.0.Final.jar
│   │   │   ├── protobuf-java-2.5.0.jar
│   │   │   ├── scala-continuations-library_2.11-1.0.2.jar
│   │   │   ├── scala-reflect-2.11.0.jar
│   │   │   ├── scala-stm_2.11-0.7.jar
│   │   │   ├── scalatest_2.11-2.1.3.jar
│   │   │   ├── slf4j-api-1.7.5.jar
│   │   │   ├── uncommons-maths-1.2.2a.jar
│   │   │   └── zeromq-scala-binding_2.11-0.0.7-spark.jar
│   │   └── scala-library-2.11.4.jar
│   └── src
│       └── akka
│           ├── akka-actor_2.11-2.3.8-sources.jar
│           ├── akka-agent_2.11-2.3.8-sources.jar
│           ├── akka-camel_2.11-2.3.8-sources.jar
│           ├── akka-cluster_2.11-2.3.8-sources.jar
│           ├── akka-contrib_2.11-2.3.8-sources.jar
│           ├── akka-dataflow_2.11-2.3.8-sources.jar
│           ├── akka-durable-mailboxes-2.3.8-sources.jar
│           ├── akka-file-mailbox_2.11-2.3.8-sources.jar
│           ├── akka-kernel_2.11-2.3.8-sources.jar
│           ├── akka-mailboxes-common_2.11-2.3.8-sources.jar
│           ├── akka-multi-node-testkit_2.11-2.3.8-sources.jar
│           ├── akka-persistence-experimental_2.11-2.3.8-sources.jar
│           ├── akka-persistence-tck-experimental_2.11-2.3.8-sources.jar
│           ├── akka-remote-tests_2.11-2.3.8-sources.jar
│           ├── akka-remote_2.11-2.3.8-sources.jar
│           ├── akka-slf4j_2.11-2.3.8-sources.jar
│           ├── akka-testkit_2.11-2.3.8-sources.jar
│           ├── akka-transactor_2.11-2.3.8-sources.jar
│           └── akka-zeromq_2.11-2.3.8-sources.jar
└── app.rb

app.rb文件的内容是...

require "java"

$CLASSPATH << "akka-2.3.8"
$: << File.join(File.dirname(__FILE__), "akka-2.3.8")

java_import java.lang.System
java_import "akka.actor.ActorRegistry"
java_import "akka.actor.Actors"
java_import "akka.actor.UntypedActor"

...我很欣赏(在JRuby中)$CLASSPATH和加载路径$:的映射,但是我想我会尝试两者。

运行app.rb会导致以下错误(导入java.lang.System很好,这akka.actor.ActorRegistry是第一行中断)...

NameError: cannot load Java class akka.actor.ActorRegistry
         for_name at org/jruby/javasupport/JavaClass.java:1250
  get_proxy_class at org/jruby/javasupport/JavaUtilities.java:34
      java_import at file:/Users/markmcdonnell/.rubies/jruby-1.7.12/lib/jruby.jar!/jruby/java/core_ext/object.rb:26
              map at org/jruby/RubyArray.java:2409
      java_import at file:/Users/markmcdonnell/.rubies/jruby-1.7.12/lib/jruby.jar!/jruby/java/core_ext/object.rb:22
           (root) at size.rb:7

这里有什么问题。我没有下载正确的文件,还是引用不正确?

卢日

也许<<不会将所有单独的jar添加到类路径中?您可能需要寻找其他东西才能将lib和lib / akka中的所有jar都包含在内。不幸的是,我对JRuby的了解不足,无法告诉您如何做。

另外:您正在导入Akka 2.3.8中不存在的类(ActorRegistry,Actor)。请检查最新的API文档,并确保您未尝试使用Akka 1.x示例(如ActorRegistry所示)。

因此,以下似乎可行,也许您可​​以以此为起点:

require "java"

$CLASSPATH << "akka-2.3.8/lib/scala-library-2.11.4.jar"
$CLASSPATH << "akka-2.3.8/lib/akka/akka-actor_2.11-2.3.8.jar"
$CLASSPATH << "akka-2.3.8/lib/akka/config-1.2.1.jar"

java_import java.lang.System
java_import "akka.actor.ActorRef"
java_import "akka.actor.ActorSystem"
java_import "akka.actor.Props"
java_import "akka.actor.UntypedActor"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在JRuby中访问Scala的Akka库

来自分类Dev

在 Jruby 中访问 .jar 中的 java 类

来自分类Dev

无法访问 scala 类中的 sparkcontext

来自分类Dev

Scala,库akka.actor

来自分类Dev

我无法在Eclipse中访问Crouton库

来自分类Dev

无法访问 UWP 中的视频库

来自分类Dev

从Jruby中的Jar文件访问枚举

来自分类Dev

Scala无法混合库中的版本吗?

来自分类Dev

访问存储库,在该存储库中,无法直接访问该存储库的URL

来自分类Dev

JRuby中的“无法加载Java类”

来自分类Dev

JRuby中的“无法加载Java类”

来自分类Dev

在Akka / scala中访问演员外部的不可变成员

来自分类Dev

Scala / Akka Websocket服务器库

来自分类Dev

Scala和第三方Java库中Akka的最佳做法

来自分类Dev

Scala“无法在Main类中访问构造器秒表”

来自分类Dev

警告:Scala repl中无法访问的代码

来自分类Dev

无法访问外部库中存在的WakefulBroadcastReceiver

来自分类Dev

Lua 5.2无法访问C库中的函数

来自分类Dev

无法访问可移植类库中的类

来自分类Dev

无法访问从ActionFilterAttribute派生的类中的存储库(或DbContext)

来自分类Dev

Lua 5.2无法访问C库中的函数

来自分类Dev

无法访问数据库中的值

来自分类Dev

Swift:无法从已声明的库中访问方法

来自分类Dev

无法使用特定 ID 访问数据库中的数据

来自分类Dev

Scala,播放 - 无法插入到 Postgresql 数据库中

来自分类Dev

无法访问值akka.http.javadsl.unmarshalling中的Unmarshaller类型

来自分类Dev

Akka无法动态创建远程Actor:Scala

来自分类Dev

Tomcat无法访问我的库在WEB-INF / lib中引用的jar库

来自分类Dev

用户无法访问SQL Server中的用户数据库。只能访问系统数据库

Related 相关文章

热门标签

归档