JRuby on Rails:在 Rails 应用程序中使用自定义 Java 类

发布于 2024-09-27 19:24:33 字数 474 浏览 4 评论 0原文

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

I just started with JRuby on Rails and absolutely love it. I know how to use current classes within the Java API in my Rails app, but if I wanted to create a new custom class written in purely Java code, how would I be able to use it in my Rails app?

For example, let's say I created Dog.java:

class Dog {
  private String name;

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

  public String getName() {
    return name;
  }
}

How would I be able to create a new Dog object (Dog.new) in my Rails app? I need to put the Dog.java or Dog.class file somewhere, and then call some form of "import" to import it into my Rails app. I have no idea where this should go in the directory structure nor do I know where and how I should tell my app how to include it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

×眷恋的温暖 2024-10-04 19:24:33

你需要一些东西。

  1. 编译类。

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

    需要“java”
    $CLASSPATH << File.join(Rails.root, "类")
    
  3. 导入类。

    java_import Java::Dog
    

如果您想使用 Warbler 为 Rails 应用程序创建一个 war 文件,您还可以使用 中的 config.dirs 选项将 classes 目录添加到 war 文件中。 config/warble.rb,并且 Dog 类无需添加到 $CLASSPATH 即可使用,因为 Java 约定将 WEB-INF/classes 添加到 Java 中的类路径中网络应用程序。

You'll need a couple things.

  1. Compile the class.

    mkdir classes
    javac -d classes src/Dog.java
    
  2. Add classes to the classpath in your Rails application (an initializer for example).

    require 'java'
    $CLASSPATH << File.join(Rails.root, "classes")
    
  3. Import the class.

    java_import Java::Dog
    

If you want to make a war file of your Rails app with Warbler, you could also add the classes directory to the war file using the config.dirs option in config/warble.rb, and the Dog class will be available without having to add to $CLASSPATH because of the Java convention that WEB-INF/classes be added to the classpath in a Java web application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文