首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rjb:使用多个目录中的编译文件从Ruby调用java方法

rjb:使用多个目录中的编译文件从Ruby调用java方法
EN

Stack Overflow用户
提问于 2011-06-09 00:03:54
回答 2查看 894关注 0票数 0

我在两个目录中编译了一个Java库:

代码语言:javascript
复制
Directory A
   com.foo.bar.app.* //without test
Directory B
   com.foo.bar.app.test.*

我的目标是使用rjb调用com.foo.bar.app.test的一些简单的java方法(在目录A中有依赖项)。

在示例中,它们使用以下实例:

代码语言:javascript
复制
Rjb::load(classpath = '.', jvmargs=[])

如何使用rjb从类com.foo.bar.app.test.create调用方法methodFromCreate()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-28 18:39:13

你可以使用类似这样的东西:

代码语言:javascript
复制
require 'rjb'

RJB_LOAD_PATH = ["Directory A", "Directory B"].join(File::PATH_SEPARATOR)
RJB_OPTIONS = ['-Djava.awt.headless=true','-Xms16m', '-Xmx32m']

Rjb::load RJB_LOAD_PATH, RJB_OPTIONS

my_create_class = Rjb::import('com.foo.bar.app.test.Create')
my_create = my_create_class.new

my_create.methodFromCreate()

我添加了我们目前正在使用的RJB_OPTIONS只是为了举例说明,如果你需要任何awt的东西,删除dthe -Djava.awt,...选项。

票数 3
EN

Stack Overflow用户

发布于 2011-06-10 07:10:59

我不知道rjb gem如何,但是JRuby很容易做到这一点

在ruby代码中,您需要使用java,并将类层次结构的路径添加到类路径中。如果导入该类,则可以通过在类名上调用new来创建实例。如果不导入类,则可以通过对完全限定的类名调用new来创建实例。

代码语言:javascript
复制
require 'java'
$CLASSPATH<< "path/to/java/classes";  

import com.foo.bar.app.Class1

c1 = Class1.new
c2 = com.foo.bar.app.test.Class2.new
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6281805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档