【问题标题】:Importing and using a java class in ruby在 ruby​​ 中导入和使用 java 类
【发布时间】:2018-07-30 11:02:52
【问题描述】:

我有一个 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

所以问题是:我怎样才能为我的课程做同样的事情?

提前致谢。

【问题讨论】:

  • javax.swing.JButton 和 javax.swing.JFileChooser 是类。你想做什么?
  • 哦,是的,它们是我成功导入的类。我正在尝试导入我制作的 java 类。比如我想导入 lib/app/gallery/ThumbnailFileChooser.java
  • 你应该编译你的java类。
  • @JohannesKuhn 你的意思是这样的吗? hot to compile a java file in java

标签: java classpath jruby


【解决方案1】:

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

如果由于某种原因你不能这样做,apparently you can include.class 文件直接如下:

假设我有一个“myclass.class”,其中有一个名为“myclass”的类 'mypackage.myclass'。这会导致两个问题,因为 JRuby 没有 像非 Camelcased 类(因为模块必须有 cap-Alpha 开始我认为)。

首先,创建一个目录(例如在 lib/ 下 - 虽然不是 必要)调用 mypackage 并将 myclass.class 放在那里。

那么这应该可以工作:

需要'java' $CLASSPATH

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

@myclass = myclass.new

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多