我在两个目录中编译了一个Java库:
Directory A
com.foo.bar.app.* //without test
Directory B
com.foo.bar.app.test.*我的目标是使用rjb调用com.foo.bar.app.test的一些简单的java方法(在目录A中有依赖项)。
在示例中,它们使用以下实例:
Rjb::load(classpath = '.', jvmargs=[])如何使用rjb从类com.foo.bar.app.test.create调用方法methodFromCreate()?
发布于 2011-10-28 18:39:13
你可以使用类似这样的东西:
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,...选项。
发布于 2011-06-10 07:10:59
我不知道rjb gem如何,但是JRuby很容易做到这一点
在ruby代码中,您需要使用java,并将类层次结构的路径添加到类路径中。如果导入该类,则可以通过在类名上调用new来创建实例。如果不导入类,则可以通过对完全限定的类名调用new来创建实例。
require 'java'
$CLASSPATH<< "path/to/java/classes";
import com.foo.bar.app.Class1
c1 = Class1.new
c2 = com.foo.bar.app.test.Class2.newhttps://stackoverflow.com/questions/6281805
复制相似问题