【问题标题】:JRuby on Rails: Using custom Java classes in your Rails appJRuby on Rails:在 Rails 应用程序中使用自定义 Java 类
【发布时间】:2010-10-12 17:24:54
【问题描述】:

我刚开始使用 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 应用程序。我不知道这应该放在目录结构中的什么位置,也不知道我应该在哪里以及如何告诉我的应用如何包含它。

【问题讨论】:

    标签: java ruby-on-rails jruby jrubyonrails


    【解决方案1】:

    你需要一些东西。

    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 文件,你也可以使用 config/warble.rb 中的 config.dirs 选项将 classes 目录添加到 war 文件中,并且 Dog 类将不可用必须添加到 $CLASSPATH,因为 Java 约定将 WEB-INF/类添加到 Java Web 应用程序的类路径中。

    【讨论】:

    • 太棒了!你让我很开心,尼克。谢谢!
    猜你喜欢
    • 2011-03-18
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多