在 ruby 中导入和使用 java class

Importing and using a java class in ruby

我有一个 ruby 文件,其中包含我的 ruby 项目的所有必要 java_imports。该文件(名为 java_import.rb)位于 lib/app/wrapper_classes/java_import.rb.

我的 java 类 位于 lib/app/gallery/*.java,在 package gallery;

我试过include_package "gallery"include_class gallery.ThumbnailFileChooser,但我觉得我缺少关键知识。

这是我如何在 ruby project 中包含 java librairies 的示例。

module Awt
    java_import javax.swing.JButton
    java_import javax.swing.JFileChooser
end

所以问题是:如何为我的 类 做同样的事情?

提前致谢。

我首先建议将您的 类 打包到 typical java fashion 中的 jar 文件中。然后你可以简单地添加 require "myjar.jar" 到你的 JRuby 脚本并使用你的 类 就像你正在做的 javax.swing 类.

如果由于某种原因您不能这样做,apparently you can include .class 直接按如下方式提交:

Let's say I have 'myclass.class' which has a class called 'myclass' in 'mypackage.myclass'. This causes two problems because JRuby doesn't like non-Camelcased classes (because Modules have to have cap-Alpha starts I think).

First, create a directory (under lib/ for example - though not necessary) called mypackage and put myclass.class in there.

Then this should work:

require 'java' $CLASSPATH << 'lib'

myclass = JavaUtilities.get_proxy_class('mypackage.myclass')

@myclass = myclass.new