6

我刚开始使用 JRuby on Rails,非常喜欢它。我知道如何在我的 Rails 应用程序中使用 Java API 中的当前类,但是如果我想创建一个用纯 Java 代码编写的新自定义类,我将如何在我的 Rails 应用程序中使用它?

例如,假设我创建了 Dog.java:

class Dog {
  private String name;

  public Dog() {
    name = "Fido";
  }

  public String getName() {
    return name;
  }
}

如何在我的 Rails 应用程序中创建一个新的 Dog 对象 (Dog.new)?我需要将 Dog.java 或 Dog.class 文件放在某处,然后调用某种形式的“导入”将其导入我的 Rails 应用程序。我不知道它应该放在目录结构中的什么位置,也不知道我应该在哪里以及如何告诉我的应用程序如何包含它。

4

1 回答 1

12

你需要一些东西。

  1. 编译类。

    mkdir classes
    javac -d classes src/Dog.java
    
  2. 添加classes到 Rails 应用程序的类路径(例如初始化程序)。

    require 'java'
    $CLASSPATH << File.join(Rails.root, "classes")
    
  3. 导入类。

    java_import Java::Dog
    

如果您想使用 Warbler 制作 Rails 应用程序的 war 文件,您还可以使用in 选项将classes目录添加到 war 文件中,并且由于 WEB- 的 Java 约定,无需添加 Dog 类即可使用INF/类被添加到 Java Web 应用程序的类路径中。config.dirsconfig/warble.rb$CLASSPATH

于 2010-10-12T18:09:17.850 回答