RJB Hello World示例
问题描述:
我想在使用RJB(Ruby Java Bridge)的Ruby on Rails项目中的Java类中调用一个函数。RJB Hello World示例
的Java类是
public class HelloWorld {
int fifty(){
return 50 ;
}
public static void main(String[] args) {
// Prints "Hello, World" in the terminal window.
System.out.println("Hello, World");
}
}
,并在控制器我有
require "rjb"
def home
myclass = Rjb::load(classpath ='\\home\\mennatallah\\TopicalClusteringofTweets\\lib\\java_libs\\helloworld.class', jvmargs=[])
myclass_instance = myclass.new
@output = myclass_instance.fifty
end
它提供了 “为无未定义的方法`新”:NilClass” 我怎样才能做到这一点?
答
您可以尝试以下操作。它可能有所帮助:
Rjb::add_jar(Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':'))
Rjb::load(Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':'))
test = Rjb.import('HelloWorld')
instance_class = test.new
+1
非常感谢! – MennatAllahHany
+0
主要被称为* test.new *?我将控制台输出重定向到一个文件(output.txt),但在调用* text.new *之后,此文件保持为空。当我在IDE中执行它时,我的output.txt文件中有“Hello,World”。 –
它看起来像你在类Unix操作系统上。在类Unix操作系统上,路径组件分隔符是'/',而不是'\\'。 –